0

我需要帮助才能在 IndexOf 的帮助下将一些单独的行拆分为不同的子字符串。

子字符串用 * 分隔,例如:

Question*Answer*AnswerA*AnswerB*CorrectAwnser

如何拆分字符串以获得 Answer、AnswerA、AnswerB 和 CorrectAnswer?

这是我的代码的一部分。getQuestion()使用 getAnserA、getAnserB 和 getCorrectAnswer后我能做什么

try {
  InputStream is = context.getAssets().open(questionFile);
  BufferedReader reader = new BufferedReader(new InputStreamReader(is));
  // Skips lines
  for (int i = 0; i< questionCount; i++) {
    reader.readLine();
  }
  question = reader.readLine();
} catch (IOException e) {
  e.printStackTrace();
}

public String getQuestion() {
  return question.substring(0, question.indexOf("*"));
}
4

3 回答 3

1

使用StringTokenizer将字符串拆分为 n 个字符串。你需要通过分隔符。

例如

  String questiongString = "Question1*Question2*Question3";
     StringTokenizer splitter = new StringTokenizer(questionString, "*");
     while (splitter.hasMoreTokens()) {
              String question = splitter.nextToken();
       }
于 2013-01-26T16:46:52.237 回答
1

你不需要 indexOf,String 有一个有用的 split 方法:

String[] parts = question.split("\\*");

String q = parts[0];
String answer = parts[1];
String answerA = parts[2];
String answerB = parts[3];
String correctAnswer = parts[4];
于 2013-01-26T16:46:54.223 回答
0
int indexOfFirstStar = question.indexOf('*');
int indexOfSecondStar = question.indexOf('*', indexOfFirstStar + 1);
int indexOfThirdStar = question.indexOf('*', indexOfSecondStar + 1);
...

一旦你有了所有的索引,你只需要使用子字符串。阅读字符串 javadoc

于 2013-01-26T16:48:30.910 回答