사용자가 입력 한 문자열의 길이를 찾으려고합니다. 그러나 어떤 이유 때문에 .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.");
}
}
스캐너의 javadoc을 읽으십시오. 그것은 무엇을합니까? 토큰의 정의는 무엇입니까? next() 메서드는 무엇을합니까? 그런 다음 nextLine() 메서드의 javadoc을 읽습니다. 또한 디버거를 사용하거나 적어도 변수 값을 인쇄하는 방법을 배우십시오. userInput은 여러분이 생각하는 것과 다릅니다. String.length()는 분명히 문서에서 말하는 것과 같습니다. 그렇지 않으면 커다란 버그가 될 것이고 오랫동안 수정되었을 것입니다. 무언가가 예상대로 작동하지 않으면 표준 라이브러리가 아닌 코드에서 99.9999999 %의 버그가 발생할 가능성이 있습니다. –
사용자 입력의 첫 번째 단어 만 검색 중이라고 생각합니다. 사용자 입력을 검색하는 길이가 문제가 아닙니다. – TheBakker