2014-04-10 2 views
0

각 문자열의 단어 수를 찾으려는 문자열 배열이 있습니다. 총 단어 수를 찾는 방법을 이해하지만 원하지 않는 숫자도 포함됩니다. s [i] .matches (". \ d +.")를 시도했지만 문자열에 숫자가 하나 이상 있는지 확인합니다. 총 숫자 (숫자가 아님)를 찾으려고합니다. 예를 들어, 한 문자열은 "IN CONGRESS, July 4, 1776"입니다. 내 코드는 2 개의 숫자를 포함하기 때문에 단지 3 개이지만 5 개의 단어를 반환합니다.문자열의 숫자 수 결정

+1

당신은 단지 당신이 처음에 원하는 것을 일치하는 올바른 정규 표현식을해야합니다. 당신이 시도한 것을 게시한다면, 사람들은 당신이 원하는 것을 성취 할 수있는 방법을 제안 할 수 있습니다. –

답변

0

총 단어 - 숫자가있는 단어는 작동해야합니다. 다음 정규식을 사용

matches(".*[0-9].*") 
+0

나는 그것을 시도했지만'matches (". * [0-9]. *")'는 부울이며 true 또는 false만을 반환합니다. 문자열에 실제로 몇 개의 숫자가 있는지 알아야합니다. – jnathan13

+0

문자열에 split ("")을 사용하고 모든 요소를 ​​일치시킬 수 있습니다. 그래서 split ("") .length를 사용하여 단어/숫자의 총 수를 얻은 다음 정규식과 일치하는 항목을 빼낼 수 있습니다. – Arkillon

0
public static void main(String[] args) 
{ 
    int count = 0; 
    for (String str : "IN CONGRESS, July 4, 1776.".split("(\\s+)(\\,)*(\\.)*")) 
    { 
     if (!str.matches("(.)*(\\d)(.)*")) 
     { 
      count++; 
      System.out.println("word "+count+":"+str); 
     } 
    } 
    System.out.println("Total words:"+count); 
}