我正在尝试编写一种方法来将字符串标记为其各自的单词到数组中。我已经使用split方法测试了我的程序,它运行正常,但我试图编写一个不使用split的tokenize方法。这是我到目前为止所尝试的:
public static String[] tokenize(String sentence) {
int wordCount = countWords(sentence);
String[] sentenceWords = new String[wordCount];
int curWord = 0;
char letter;
for(int i = 0; i < sentence.length()-1; i++) {
letter = sentence.charAt(i);
if (letter == ' ') {
curWord++;
continue;
}
System.out.println (sentenceWords[curWord]);
sentenceWords[curWord] = String.format("%s%c", sentenceWords[curWord], letter);
System.out.printf("%s\n", sentenceWords[curWord]);
}
return sentenceWords;
}
此方法的输出完全错误。我得到了一个填充了一堆空值的输出,每个单词都在一个新行上。
我也尝试了另一种变化但是没有太过分:
public static String[] tokenize(String sentence) {
int wordCount = countWords(sentence);
String[] sentenceWords = new String[wordCount];
for(int i = 0; i < sentence.length()-1; i++) {
if(sentence.contains(" ")) {
//Something.....
}
}
return sentenceWords;
}
我不确定会采用什么样的方法。