2013-11-26 1 views
1

replaceAll(" ", "")을 사용하여 문자열의 모든 공백을 제거하려고 시도했지만 "hello world"과 같은 텍스트는 공백뿐만 아니라 공백 뒤에 나오는 텍스트도 제거합니다. 즉, 결국은 "hello" 대신 "helloworld". 내가 도대체 ​​뭘 잘못하고있는 겁니까?replaceAll ("", "")은 공백 ""뒤에 문자열의 모든 텍스트를 제거합니까?

public static void main (String [] args) { 
      String input; 
      Scanner console = new Scanner(System.in); 

      System.out.print("enter text: "); 
      input = console.next(); 
      System.out.println(); 

      input.replaceAll(" ", ""); 
      System.out.println(input); 
    } 
+8

, 난 그냥 지금은 잘 작동하고 노력했다. 코드를 보여줄 수 있습니까? 'System.out.println ("Hello World".replaceAll ("", ""));'print HelloWorld' –

+1

다음은 작동하는 예제입니다 : http://ideone.com/gGpIIZ –

+0

장소? –

답변

2

당신은 (또는 새에) 당신의 변수에 할당 할 수 있습니다

input = input.replaceAll(" ", ""); 

문자열들이 변경 될 수 없음을 의미하는 불변입니다. replaceAll()이하는 일은 새로운 문자열을 만드는 것입니다. 따라서이를 사용하려면 변수에 변수를 할당해야합니다.

Hello 만 보이는 이유는 scanner.nextLine() 대신 scanner.next()을 사용하고 있기 때문입니다.

전자는 구분 기호 (표준 : 공백)에 도달 할 때까지 첫 번째 토큰 만 가져옵니다. 후자는 끝 문자 (창에서 : \r\n, 을 입력하고)를 구분 기호로 간주합니다.

귀하의 작업 코드는 다음과 같습니다 : 그것은 안

public static void main (String [] args) { 
     String input; 
     Scanner console = new Scanner(System.in); 

     System.out.print("enter text: "); 
     input = console.nextLine(); // Change here 
     System.out.println(); 

     input = input.replaceAll(" ", ""); // Change here 
     System.out.println(input); 
} 
+0

nextLine() 그것을했습니다! 대단히 감사합니다 !! – user2954470

관련 문제