안녕하세요 "72 \ n"Integer.parseInt ("72 \ n")를 사용하려고하면 로그 오류가 발생하여 ' 72 '를 정수로 나타냅니다. \ n을 필터링하려면 어떻게해야합니까?문자열에 다른 문자가있는 경우 문자열을 int로 변환합니다.
감사
적절한 정규식안녕하세요 "72 \ n"Integer.parseInt ("72 \ n")를 사용하려고하면 로그 오류가 발생하여 ' 72 '를 정수로 나타냅니다. \ n을 필터링하려면 어떻게해야합니까?문자열에 다른 문자가있는 경우 문자열을 int로 변환합니다.
감사
적절한 정규식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 부동 소수점 숫자 우리가 허용하는 경우 난이도가 도착 미국 내 소수점 용으로는 .
이고 다른 일부 위치에서는 ,
입니다.
은 개행 문자이며 공백 유형입니다. Java의 문자열에는 trim()
이라는 메서드가 있습니다.이 메서드는 선행 공백과 후행 공백이 제거 된 문자열의 복사본을 반환합니다.
String a = "72\n";
String b = a.trim(); // "72"
앞뒤 공백을 처리하는 간단한 방법은 String.trim()
을 사용하는 것입니다.
replaceAll
또는 이와 유사한 방법을 사용하여 포함 된 공백 및 기타 "노이즈"를 제거 할 수 있지만 사용자가 의도 한 의미를 변경할 위험이 있습니다. 예를 들어, 포함 된 공백이나 쉼표는 사용자가 여러 개의 숫자를 입력 할 수 있거나 입력해야한다고 생각한 것일 수 있습니다. 필자의 의견으로는 오류를 수정하고 사용자의 관점에서 잘못 이해하려고 시도하는 것보다 오류가 있음을 사용자에게 알리는 것이 좋습니다.
그래서이 경우에는 replaceAll
을 사용하는 것이 숫자 내에서 공백을 "고칠"뿐만 아니라 행간이나 후행에도 책임이 있기 때문에 좋은 생각이 아닙니다.
감사합니다. 나는 방금 replaceall을했는데 효과가있었습니다. – Sean