我試圖找到用戶輸入的任何字符串的長度。但是,由於某些原因,.length()方法只能找到第一個單詞的長度,然後停止。如何獲取用戶輸入的長度?
因此,我決定用「_」替換所有空格,然後查找長度。由於某些原因,.length()方法仍然只能找到第一個單詞的長度。我知道我可以將字符串的每個單詞放入一個數組中,然後獨立地找到它們的長度,但是必須有一種更有效的方法來完成它。
我看了很多其他的答案。 userInput.replace(「\ s」,「」);或userInput.replace(「」,「」);根本不適合我;它產生與以前完全相同的結果。如何在不使用數組的情況下找到字符串的長度?
package com.skulr.challenge;
import com.skulr.challenge.Menu;
public class Challenge11 {
static String userInput;
static int count0;
static int i = 0;
public static void method1() {
System.out.println("Input a message and we will\ncalculate it's length\n");
System.out.print("- ");
userInput = Menu.menuScanner.next();
userInput = userInput.replace("\\s","_");
System.out.println(userInput);
count0 = userInput.length();
System.out.println("Your string is: " + count0 + " characters long.");
}
}
閱讀Scanner的javadoc。它有什麼作用?令牌的定義是什麼?它的next()方法有什麼作用?然後閱讀nextLine()方法的javadoc。另外,學會使用調試器,或至少打印變量的值。 userInput不是你認爲的那樣。 String.length()顯然會做它的文檔所說的。否則,這將是一個巨大的錯誤,並且它會被固定很長時間。當某些事情不能按預期工作時,在您的代碼中有99.9999999%的機會成爲bug,而不是在標準庫中。 –
我在想你只是檢索用戶輸入的第一個單詞,問題不在於它檢索用戶輸入的方式。 – TheBakker