我仔细查看了,无法找出错误。它无法运行找到第一个病房的最后一部分。我认为我的getWard方法是正确的,我无法找到错误的地方。请帮忙!
public static void main(String[] args) {
Scanner inScanner = new Scanner(System.in);
String input = getInputString(inScanner);
int count = getWordCount(input);
System.out.println("Your string has " + count + " words in it.");
String first = getWord(input , 1);
System.out.print("The first word is: " + first);
}
// TODO Auto-generated method stub
private static String getInputString(Scanner inScanner) {
System.out.println("Enter a string: ");
String inputString = inScanner.nextLine();
return inputString;
}
private static int getWordCount(String input) {
int count = 1;
for (int i = 0; i < input.length(); i++) {
if (input.charAt(i) == ' ') {
count ++;
}
}
return count;
}
private static String getWord(String input, int n){
String myString = getWord(input , 1);
return myString;
}
}
答案 0 :(得分:1)
这将是无休止的递归
private static String getWord(String input, int n){
String myString = getWord(input , 1);
return myString;
}
查看你的代码
我想你想要像
这样的东西 return input.split(" ")[0];
但是你也应该做一些null
字符串测试
此外,将int传递给此方法似乎没有任何意义。
答案 1 :(得分:0)
private static String getWord(String input, int n){
String myString = getWord(input , 1);
return myString;
}
将永远运行
使用字符串的拆分方法,例如String firstWord = input.split(" ")[0];
答案 2 :(得分:0)
在您的方法 getWord 中,看起来您正在永久地递归调用自身,而不会在任何地方停止。你有变数&#39; n&#39;根本没用过。这是为什么?
而不是 getWord 你可能需要使用Scanner的方法 next(),如果我是正确的,它将返回整个单词。
此外,我非常确定你算上所有的单词,你到达文档的末尾,这意味着如果你想得到第一个单词,你需要得到扫描仪返回到了开始并重新开始。但在你的位置我也会检查这些信息。