2016-10-23 2 views
0

replaceAll 메소드가 작동하지 않습니다. 더 구체적으로 첫 번째 인수는 문자열 정규 표현식을 사용합니다. 마침표를 포함하여 숫자가 아닌 모든 문자를 제거하고 싶습니다.마침표를 포함한 숫자가 아닌 문자를 모두 제거하십시오.

내 구현.

userId = inputRow.next().replaceAll("[\\.^\\d.]", ""); 

샘플 출력 : 알파벳

+0

영문자 만 남겨 둡니다. 방금 번호를 원했어. @Alex – user

답변

1

당신이이 방법을 수행 할 수 있습니다

userId = inputRow.next().replaceAll("[^\\d]", ""); 

[^ \\ D] 숫자가 아닌 모든 문자 순서를 일치 빈 문자열로 대체됩니다.

1

당신은 정규 표현식에 오류가 외에

"","","" 
"","","" 
"","","" 
"","BBLDX","" 
"","N","" 
"","","" 
"","","" 
"","","" 
"","","" 
"","","" 
"","","" 
"","","" 
"","","" 
"","","" 

그것의 제거 다.
"[^ \ d]"이어야합니다.
숫자가 아닌 모든 문자를 대체합니다.

0
String text = "afadsfas1234fasdfadsf.fasdf.sadfadsf.afadsf.5678"; 
System.out.println(text); 
// /D is equal to a non digit. [^0-9] 
String result = text.replaceAll("[\\.\\D]", ""); 
System.out.println(result); 
//Result will be 12345678 

위의 코드는 마침표를 포함하여 숫자가 아닌 모든 문자를 제거하는 데 도움이됩니다. \ d는 0-9의 숫자이고 \ D는 숫자가 아닌 숫자입니다.

관련 문제