2011-10-09 3 views

답변

1

replaceAll 잘 작동합니다. 예를 들어 \\D 모든 숫자가 아닌 문자를 발견 할 것이다, 그래서 myString.replaceAll("\\D", "") 잘 일할 수 :

String test2 = "72\n";  
    System.out.printf("\"%s\"%n", test2); 

    test2 = test2.replaceAll("\\D", ""); 
    System.out.printf("\"%s\"%n", test2); 

이 같은 등의 로케일에 의존하는 숫자가 아닌 문자를 허용 비 INT 부동 소수점 숫자 우리가 허용하는 경우 난이도가 도착 미국 내 소수점 용으로는 .이고 다른 일부 위치에서는 ,입니다.

+0

감사합니다. 나는 방금 replaceall을했는데 효과가있었습니다. – Sean

3

은 개행 문자이며 공백 유형입니다. Java의 문자열에는 trim()이라는 메서드가 있습니다.이 메서드는 선행 공백과 후행 공백이 제거 된 문자열의 복사본을 반환합니다.

String a = "72\n"; 
String b = a.trim(); // "72" 
2

앞뒤 공백을 처리하는 간단한 방법은 String.trim()을 사용하는 것입니다.

replaceAll 또는 이와 유사한 방법을 사용하여 포함 된 공백 및 기타 "노이즈"를 제거 할 수 있지만 사용자가 의도 한 의미를 변경할 위험이 있습니다. 예를 들어, 포함 된 공백이나 쉼표는 사용자가 여러 개의 숫자를 입력 할 수 있거나 입력해야한다고 생각한 것일 수 있습니다. 필자의 의견으로는 오류를 수정하고 사용자의 관점에서 잘못 이해하려고 시도하는 것보다 오류가 있음을 사용자에게 알리는 것이 좋습니다.

그래서이 경우에는 replaceAll을 사용하는 것이 숫자 내에서 공백을 "고칠"뿐만 아니라 행간이나 후행에도 책임이 있기 때문에 좋은 생각이 아닙니다.

관련 문제