我需要帮助才能在IndexOf的帮助下将一些单独的行分成不同的子串。
子串用*分隔,例如:
问题*答案* AnswerA * AnswerB * CorrectAwnser
如何分割字符串以获得Answer,AnswerA,AnswerB和CorrectAnswer?
这是我的代码的一部分。
使用getAnserA,getAnserB和getCorrectAnswer getQuestion()
之后我该怎么办
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("*"));
}
答案 0 :(得分:1)
使用StringTokenizer将字符串拆分为n个字符串。你需要通过分隔符。
例如
String questiongString = "Question1*Question2*Question3";
StringTokenizer splitter = new StringTokenizer(questionString, "*");
while (splitter.hasMoreTokens()) {
String question = splitter.nextToken();
}
答案 1 :(得分: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];
答案 2 :(得分:0)
int indexOfFirstStar = question.indexOf('*');
int indexOfSecondStar = question.indexOf('*', indexOfFirstStar + 1);
int indexOfThirdStar = question.indexOf('*', indexOfSecondStar + 1);
...
获得所有索引后,只需使用子字符串即可。阅读String javadoc。