2011-02-16 6 views
1

나는 정규 표현에 관한 질문이 있습니다. 현재 문자열을 읽고 모든 숫자를 배열에 저장하려고합니다. 제 질문은 정수와 소수를 어떻게 일치 시키려고합니까?일치 소수는()

I라는 복식의 배열을 가지고

이중 [] = thisArray 새로운 이중 [20];

이 배열에는 문자열에서 추출한 모든 숫자를 저장하려고합니다.

matcher temp = Pattern.compile ("(\ d +)"). matcher (x); 매처 내 기능입니다

. 그러나 이것은 정수와 일치합니다. 나는 (5.2)와 같이 정수와 십진수를 모두 일치시키고 싶다. 하지만 어떻게해야합니까? 나는 정수와 소수 자릿수를 모두 내 문자열에 입력 할 수 있기를 원합니다.

도움을 주시면 감사하겠습니다. 감사!

답변

2

이 정수와 소수를 모두 처리합니다 : -

private Pattern p = Pattern.compile("\\d+(\\.\\d+)?"); 

@Test 
public void testInteger() { 
    Matcher m =p.matcher("10"); 

    assertTrue(m.find()); 
    assertEquals("10", m.group()); 
} 

@Test 
public void testDecimal() { 
    Matcher m =p.matcher("10.99"); 

    assertTrue(m.find()); 
    assertEquals("10.99", m.group()); 
} 
+0

나는 당신이 거기에 있었다 무엇을보고, 당신은 모두 그 자체로 자리 또한 \\ 있었다 \\ d 개 +는 선택 사항이었다.. 고마워요! – Eric

+0

이것은 또한 음수 10 진수를 처리합니까? – aditya

0

문구 \d+ 숫자의 문자열을 일치합니다. 그래서 둘 사이에 점을 추가하는 것은 어떨까요? (\d+)|(\d+|\.\d+)