2012-06-25 2 views
0
에 대한 문자열

가능한 중복 :
Java: how to check that a string is parsable to a double?테스트 숫자

자바의 숫자에 대한 문자열을 확인하는 가장 좋은 방법은 무엇입니까?

try { 
     NumberFormat defForm = NumberFormat.getInstance();    
     Number n = defForm.parse(s);  
     double d = n.doubleValue(); 
    } 
    catch (Exception ex) { 
     // Do something here...  
    } 

REGEX를 사용하면 더 좋은 방법이 있습니까?

숫자를 제거하고 싶지 않습니다.

+4

당신이 '도'56 ''와 같은 문자열을 말하는'또는됩니다 "aaa56aaa"'? – Kshitij

+0

예 Regex를 사용하여 패턴 인식을 할 수 있습니다 .. – ria

+2

또한 어떤 종류의 숫자를 허용 하시겠습니까? 나는'1e4'라고 생각하고있다. - 그게 너에게 유효한 번호인가? 'NaN' 또는'-Inf'는 어떻습니까? –

답변

1

-

String s="aa56aa"; 
Pattern pattern = Pattern.compile("\\d"); 
Matcher matcher = pattern.matcher(s); 

System.out.println(matcher.find()); 
0

좋은 해결책은 regex (link < - 여기서 정규 표현식과 함께 작업하는 데 필요한 모든 것)을 사용하는 것입니다.

+0

이것은 OP 질문에 대한 답변이 아닙니다 (그대로 모호합니다). –

+0

지적 해 주셔서 고맙습니다. 그러나 진심으로 질문은 "lmgtfy"카테고리의 것입니다 – overbet13

+0

"lmgtfy"는 "Let me Google That For You"의 약자입니다. – overbet13

0
/** 
* Return true if your string contains a number, 
* false otherwise. 
*/ 
str.matches("\\d+"); 

예 : u는 그것을 이런 식으로 할 수있는 정규식을 사용하여

"csvw10vsdvsv".matches("\\d+"); // true 
"aaa".matches("\\d+"); // false 
+0

불법 문자 \ 92 문자 메시지를 여기에서 받으십시오. 어떤 아이디어? –

+0

@MrMorgan : 죄송합니다. 나는 자바와 자바를 섞었다. 나는 나의 해결책을 바꿨다. 보세요! – user278064

0
Pattern intsOnly = Pattern.compile("\\d+"); 
Matcher makeMatch = intsOnly.matcher("125455"); 
2
String test = "12cats"; 
//String test = "catscats"; 
//String test = "c4ts"; 
//String test = "12345"; 
if (test.matches(".*[0-9].*") { 
    System.out.println("Contains numbers"); 
} else { 
    System.out.println("Does not contain numbers"); 
} //End if 
관련 문제