2015-03-03 52 views
2

正如標題所暗示的,我正在嘗試製作一個方法,它將單獨處理字符串的每個單詞。我已經得到了代碼,但我不確定它是否正確。所以我跑了幾次測試,看它是否適當地打印出來。經過多次嘗試,絕對沒有打印出來。我需要幫助。任何人都可以找到我的代碼錯了嗎?我的方法是否用於查找字符串中的每個單詞

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

回答

2

您有:

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

4

你試圖讓你的函數裏面的一些輸入,使用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

相關問題