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 には便利な分割メソッドがあります。

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);
...

すべてのインデックスを取得したら、部分文字列を使用するだけです。String javadocを読み取ります。

于 2013-01-26T16:48:30.910 に答える