0

我在更换我的字符串时遇到问题。

这是 Question 类方法。

public class Question
{
private String text;
private String answer;

/**
Constructs a question with empty question and answer.
 */
public Question(String qText) 
{
    text = qText;
    answer = "";
}

/**
Sets the answer for this question.
@param correctResponse the answer
 */
public void setAnswer(String correctResponse)
{
    answer = correctResponse;
}

/**
Checks a given response for correctness.
@param response the response to check
@return true if the response was correct, false otherwise
 */
public boolean checkAnswer(String response)
{
    return response.equals(answer);
}

/**
Displays this question.
 */
public void display()
{
    System.out.println(text);
}
}

这是我的方法

This is my blankQuestions class

import java.util.ArrayList;  


public class BlankQuestion extends Question {  

public BlankQuestion(String qText) {   
    return qText.replaceAll("_+\\d+_+", "_____");


    String tempSplit[] = questionText.split("_");  
    setAnswer(tempSplit[1]);  

}  
public void setAnswer(String correctChoice){  
    super.setAnswer( correctChoice );  

}  

@Override  
public boolean checkAnswer (String response){  
    return super.checkAnswer(response);  

}  

public String toString(){  
    return super.toString();  
}  


}  

这是我的主要课程

import java.util.Scanner;  

public class QuestionDemo  
{  
public static void main(String[] args)  
{  
  Question[] quiz = new Question[2];  

  BlankQuestion question0 = new BlankQuestion(  
     "2 + 2 = _4_");  
  quiz[0] = question0;  

  BlankQuestion question1 = new BlankQuestion(  
     "The color of the sky is _blue_.");  
  quiz[1] = question1;  

  Scanner in = new Scanner(System.in);  
  for (Question q : quiz)  
  {  
     q.display();  
     System.out.println("Your answer: ");  
     String response = in.nextLine();  
     System.out.println(q.checkAnswer(response));  
  }  
}  
}  

据我了解,我将 [underscore]4[underscore] 替换为 5x[underscore],这类似于填充空白,我存储 4. 并将字符串的一部分替换为_ __ _ _。Unfortado,这就是我的结果。我认为我的逻辑是正确的,但我不知道为什么我的回报不是我所期望的。

4

1 回答 1

2

一次完成所有操作:

return qText.replaceAll("_+\\d+_+", "_____");

它用五个下划线替换一个或多个下划线,后跟一个或多个数字,然后是一个或多个下划线。

于 2013-05-05T06:09:48.243 回答