将文件从一个文件分割成不同的子字符串

时间:2013-01-26 16:40:54

标签: java split indexof

我需要帮助才能在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("*"));
}

3 个答案:

答案 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