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

时间:2015-03-03 02:23:26

标签: java

正如标题所示,我试图制作一个单独处理字符串每个单词的方法。我已经删除了代码,但我不确定它是否正确。所以我运行了几个测试,看它是否打印出来。多次尝试后,绝对没有打印出来。我需要帮助。任何人都可以发现我的代码有什么不对吗?

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 latin(我的预期目标)。

以下是我的主要方法中的简单行:

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

我打算让这段代码打印出来:

Iyay amyay uentflay inyay igPay atinLay

2 个答案:

答案 0 :(得分:4)

您尝试使用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;

}

答案 1 :(得分:2)

你有:

Scanner find = new Scanner( System.in);

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

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

你可能意味着:

Scanner find = new Scanner(str4);