2011-12-13 2 views
-1

위치를 지정하지 않고 NumberFormat 인스턴스를 사용하여 JTextField에 입력하는 String의 형식을 지정합니다. 결과적으로 나는 구분 기호로 공백으로 서식이 지정된 숫자를 나타내는 String 있습니다. 나는 다른 프로세스를 위해 String을 사용하고자 할 때 공백을 제거하는 문제가있다. string.replaceAll(" ", "");string.replaceAll("\\s", "");을 시도했지만 그 중 아무 것도 작동하지 않습니다. 내가 int index = string.indexOf(" "); 또는 int index = string.indexOf("\\s");을 수행 할 때 NumberFormat이있는 문자열 형식

String string = ((JTextField)c).getText(); 
string = string.replaceAll("\\s", ""); 

또한 그것은 문자를 찾을 수없는 즉, -1을 반환합니다. 내가

for(Character ch : string.toCharArray()) { 
System.out.println("ch : " + ch.isSpaceChar(ch)) 
} 

을 수행 할 때 은 빈 문자에 대해 true를 반환합니다. 어떻게 자바에서 공간 문자를 표현합니까?

나는 그것은 일을 대체하지 않습니다 또한

StringBuilder b = new StringBuilder(((JTextField)c).getText()); 
String string = b.toString.replaceAll("\\s", ""); 
System.out.println("string : " + string); 

했습니다.

+1

문제를 설명하는 코드의 작은 작업 섹션을 게시하십시오. – mcfinnigan

+2

원래 문자열을 호출중인 replaceAll 함수의 반환 값으로 설정하고 있습니까? 그런 다음 replaceAll 함수의 새 값으로 해당 값을 사용하는 모든 것을 업데이트하고 있습니까? –

답변

5

string = string.replaceAll(" ", "");을 사용해 보셨습니까? - 문자열을 변경할 수 없습니다.

+0

네, 그게 내가하는 일입니다. – xtrem06

0
String string = "89774lf&933 k880990"; 

string = string.replaceAll("[^\\d]", ""); 

System.out.println(string); 

출력 :

89774933880990 

그것은 다른 모든 chardigits보다 제거됩니다.

+0

그게 내가하고있는 일이다. 코드에서 – xtrem06

+0

이 업데이트되어 다른 하나를 시도하고 작동하는지 확인하십시오. –

+1

코드 주셔서 고마워,하지만 replaceAll 메서드가 작동하지 않는 이유를 이해하고 그것을 수정하고 파서를 직접하지 않는 것을 알고 싶습니다. – xtrem06