Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 确定一个字符串中有多少个数字_Java_Split_Numbers_Words - Fatal编程技术网

Java 确定一个字符串中有多少个数字

Java 确定一个字符串中有多少个数字,java,split,numbers,words,Java,Split,Numbers,Words,我有一个字符串数组,我试图找到每个字符串中的字数。我知道如何找到单词总数,但它也包括我不想要的数字。我尝试了s[I]。匹配项。\d+。但这只是检查字符串中是否至少有一个数字。我想找出的是数字的总数,而不是数字。例如,1776年7月4日,国会有一个字符串。我的代码返回5个单词,即使只有3个,因为它包含2个数字。单词总数-带数字的单词应该可以工作。使用以下正则表达式: matches(".*[0-9].*") 您只需要正确的正则表达式,它只匹配您首先需要的内容。如果您要发布您尝试过的内容,人们可以

我有一个字符串数组,我试图找到每个字符串中的字数。我知道如何找到单词总数,但它也包括我不想要的数字。我尝试了s[I]。匹配项。\d+。但这只是检查字符串中是否至少有一个数字。我想找出的是数字的总数,而不是数字。例如,1776年7月4日,国会有一个字符串。我的代码返回5个单词,即使只有3个,因为它包含2个数字。

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

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

您只需要正确的正则表达式,它只匹配您首先需要的内容。如果您要发布您尝试过的内容,人们可以提供如何实现您想要的内容。我已经尝试过,但匹配项。*[0-9].*是布尔值,只返回true或false。然后我需要找出字符串中实际有多少个数字,您可以对字符串使用split,然后对每个元素尝试匹配。因此,您可以使用split.length获得单词/数字的总数,然后减去与正则表达式匹配的数量。。。
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);
}