我的方法是否用于查找字符串中的每个单词

问题描述:

正如标题所暗示的,我正在尝试制作一个方法,它将单独处理字符串的每个单词。我已经得到了代码,但我不确定它是否正确。所以我跑了几次测试,看它是否适当地打印出来。经过多次尝试,绝对没有打印出来。我需要帮助。任何人都可以找到我的代码错了吗?我的方法是否用于查找字符串中的每个单词

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; 
} 

方法改变只是改变了拉丁语(我的目标)。

下面是简单的线条在我的主要方法:

String str4 = "I am fluent in pig latin"; 
    System.out.println (test.build(str4, test)); 

我打算这个代码打印出来的:

Iyay amyay uentflay inyay igPay atinLay

+1

好了,你没有任何打印报表。是什么让你认为这个代码*应该*打印任何东西? – azurefrog 2015-03-03 02:25:15

+0

我没有发布代码检查,因为我认为你是如何检查...我将编辑 – 2015-03-03 02:26:35

+0

请包括样本输入和预期输出以及 – Baby 2015-03-03 02:27:25

您有:

Scanner find = new Scanner(System.in); 

这意味着您正在阅读用户输入。

你也有这个str4参数,但你并没有真正使用它。当你真的想使用你的str4参数时,你似乎无意中使用System.in作为输入字符串源。因此,没有任何反应,因为find.next()从控制台等待输入,而不是使用您在传递的字符串

你大概的意思是:

Scanner find = new Scanner(str4); 
+0

我明白了,我完全理解这一点。最近我只使用扫描仪询问用户输入的东西,像聊天的机器人。但这是我第一次尝试以另一种方式使用它。所以将其改为str4输入更有意义。 – 2015-03-03 04:04:08

你试图让你的函数里面的一些输入,使用Scanner实例,给用户输入作为其构建参数。您return语句之前

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; 

}

+0

现在好多了。 – 2015-03-03 02:42:51

+0

你是对的,这个笔记是有用的,谢谢,并感谢勇敢的帮助类似的答案给你,真的很感激。 – 2015-03-03 02:43:23

+0

完美。我设法缩小了代码,甚至没有进入循环,所以我认为它必须是使用我创建的扫描仪对象的while long的东西。 Str4很有意义。谢谢。 – 2015-03-03 04:05:17