在不使用split()的情况下用Java标记字符串

时间:2018-05-12 21:16:49

标签: java arrays string tokenize

我正在尝试编写一种方法来将字符串标记为其各自的单词到数组中。我已经使用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;
}

我不确定会采用什么样的方法。

0 个答案:

没有答案