2014-04-10 88 views
0

我有一个字符串数组,我试图找出每个字符串中的字数。我明白如何找到单词的总数,但它也包含了我不想要的数字。我试过s [i] .matches(“。\ d +。”),但只检查字符串中是否至少有一个数字。我试图找到总数(不是数字)。例如,一个字符串是“1776年7月4日举行的国会大会”。即使只有3个字,我的代码也会返回5个字,因为它包含2个数字。确定一个字符串中有多少个数字

+1

你只需要只有你首先想要的东西相匹配的正确的正则表达式。如果你想发布你试过的东西,人们可以提供如何实现你想要的东西。 –

回答

0

总词 - 带数字的词应该工作。使用下面的正则表达式:

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

我试过,但匹配(“。* [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); 
} 
相关问题