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