Java 我的方法能找到字符串中的每个单词吗
正如标题所示,我正在尝试创建一个方法,该方法将单独处理字符串中的每个单词。我已经记下了密码,但我不确定它是否正确。因此,我运行了几个测试,看看它是否正确打印出来。经过多次尝试,完全没有打印出来。我需要帮助。有人能发现我的代码有问题吗Java 我的方法能找到字符串中的每个单词吗,java,Java,正如标题所示,我正在尝试创建一个方法,该方法将单独处理字符串中的每个单词。我已经记下了密码,但我不确定它是否正确。因此,我运行了几个测试,看看它是否正确打印出来。经过多次尝试,完全没有打印出来。我需要帮助。有人能发现我的代码有问题吗 public static String build( String str4, one test){ Scanner find = new Scanner( System.in); String phrase = " "; while
public static String build( String str4, one test){
Scanner find = new Scanner( System.in);
String phrase = " ";
while ( find.hasNext()){
String word = find.next();
word = test.change(word);
phrase += word + " ";
}
return phrase;
}
方法更改只是将单词更改为pig拉丁语(我的预期目标)
以下是我的主要方法中的简单行:
String str4 = "I am fluent in pig latin";
System.out.println (test.build(str4, test));
我打算让这段代码打印出以下内容:
你有:
Scanner find = new Scanner( System.in);
这意味着您正在读取用户输入
您也有这个str4
参数,但实际上并没有使用它。您似乎无意中使用了System.in
作为您的输入字符串源,而实际上您打算使用str4
参数。因此,什么也不会发生,因为find.next()
正在等待控制台的输入,而不是使用传入的字符串
你可能是说:
Scanner find = new Scanner(str4);
您尝试使用
Scanner
实例在函数内部获取一些输入,并将用户输入作为其构造参数
要打印要返回的内容,请添加以下行:
System.out.println (phrase);
在你的返回声明之前
但我猜,您错误地使用了用户输入。
请尝试以下方法:
public static String build( String str4, one test){
Scanner find = new Scanner(str4);
String phrase = " ";
while ( find.hasNext()){
String word = find.next();
word = test.change(word);
phrase += word + " ";
}
//Print your phrase here if you want.
System.out.println(phrase);
return phrase;
}嗯,您没有任何打印报表。是什么让你认为这个代码应该打印任何东西?我没有发布检查的代码,因为我假设这就是你检查的方式。。。我将请包括样本输入和预期输出作为well@JackNguyen类1是什么/类1中的
change()
方法做了什么?如果它没有返回您所想的内容,则发布的代码只会将空格串在一起。您是对的,此便条非常有用,谢谢,感谢您勇敢地帮助您找到类似的答案,非常感谢。完美。我设法把它缩小到代码范围,甚至没有进入循环,所以我认为它必须是使用我创建的scanner对象的while long。Str4非常有意义。谢谢。我明白了,我完全理解这一点。最近,我只使用了扫描仪,要求用户输入一些东西,比如聊天机器人。但这是我第一次尝试以另一种方式使用它。因此,将其更改为str4输入更有意义。