所以,我有兩個類:Java的級聯通過CMD輸入
class ConcatTesting{
public static void main(String args[]) throws java.io.IOException{
char inLetter;
String input="";
//This loops takes line of cmd and makes the input variable into that string
for(;;){
inLetter=(char) System.in.read(); //get next char
//if the line hasn't ended then add that char to input
if(inLetter!='\n'){
input+=String.valueOf(inLetter);
}else{
//other wise line has ended so input is finished
break;
}
}
//removes extra white-spaces
input.trim();
//test what input is to make sure it is working correctly
System.out.println(input);
//test concat function
UseConcat.ask(input);
UseConcat.ask("pie");
}
}
class UseConcat{
public static void ask(String str){
System.out.println("What does " + str +" mean?");
}
}
在節目中我調用靜態方法UseConcat.ask(String str)
兩次。
當UseConcat.ask(String str)
中的參數是input
變量時,連接似乎失敗。但是,當我調用UseConcat.ask(String str)
並且參數是一個隨機字符串時,連接起作用。
input
變量是cmd轉換爲字符串的第一行寫入的行。
這是一個示例圖像。
作爲圖像中所示,輸入變量被設置爲WOA。
然而UseConcat.ask(input);
打印出意思?OES WOA的 intsead是什麼WOA是什麼意思?
當輸入打印時:System.out.println(input);
它正常打印WOA。
另一方面當我打電話UseConcat.ask("pie");
它的工作和打印:餡餅是什麼意思?在Windows
爲什麼不使用'Scanner'來捕獲用戶輸入? – 2014-12-19 00:06:46
@RyanJ似乎與掃描儀一起工作,但爲什麼它目前如何做呢? – Zachooz 2014-12-19 00:13:50
我可以告訴你它與終端的行爲有關,而不是特定的代碼。它使用帶終端仿真的IDE工作。我懷疑你正在被什麼[這篇文章](http://stackoverflow.com/questions/4007534/why-cant-we-read-one-character-at-a-time-from-system-在)中描述。儘管如此,我建議切換到「Scanner」,因爲它更強健一些,更符合當前的實踐。 – 2014-12-19 00:24:24