Java 查找字符串中的整数数(不是数字)

Java 查找字符串中的整数数(不是数字),java,Java,我试图计算字符串中整数的实际长度 我一直在用这个方法来计算所有字符的长度 whitespace = input.length() - input.replaceAll(" ", "").length(); len = input.length()-whitespace; 但问题是当字符串包含大于9的整数时 例如123456,它应该返回4个整数实例 这段代码的长度为6 我发现的另一种方法是 int counter = 0; for

我试图计算字符串中整数的实际长度

我一直在用这个方法来计算所有字符的长度

        whitespace = input.length() - input.replaceAll(" ", "").length();
        len = input.length()-whitespace;
但问题是当字符串包含大于9的整数时

例如123456,它应该返回4个整数实例

这段代码的长度为6

我发现的另一种方法是

        int counter = 0;
        for (int i = 0, length = input.length(); i < len; i++) {
            if (Character.isDigit(input.charAt(i))) {
                counter++;
            }
        }
但这也计算数字,而不是整数作为一个整体

如何分离大于9的整数进行计数?

遵循以下步骤

在有空格的地方拆分字符串。拆分 拆分的字符串为数组类型 现在计算每个拆分数组的长度 最后一步是将要计算整数数的所有长度相加 使用拆分数组的长度方法来了解 整数实例 范例

String x="1 2 24";
    String x1[]=x.split(" ");
    int l1=x1[0].length();
    int l2=x1[1].length();
    int l3=x1[2].length();
    System.out.println(l3+l1+l2);
System.out.println(x1.length());// this will give number of integers in the string
产出4

3

遵循以下步骤

在有空格的地方拆分字符串。拆分 拆分的字符串为数组类型 现在计算每个拆分数组的长度 最后一步是将要计算整数数的所有长度相加 使用拆分数组的长度方法来了解 整数实例 范例

String x="1 2 24";
    String x1[]=x.split(" ");
    int l1=x1[0].length();
    int l2=x1[1].length();
    int l3=x1[2].length();
    System.out.println(l3+l1+l2);
System.out.println(x1.length());// this will give number of integers in the string
产出4


3

你可以这样试试-

int count = 0;
for(String s : input.split(" ")){
  if(isNumeric(s)) count++;
}


// method to check if string is a number
public boolean isNumeric(String s) {  
    return s.matches("[-+]?\\d*\\.?\\d+");  
} 

你可以这样试试-

int count = 0;
for(String s : input.split(" ")){
  if(isNumeric(s)) count++;
}


// method to check if string is a number
public boolean isNumeric(String s) {  
    return s.matches("[-+]?\\d*\\.?\\d+");  
} 
试试这个

    Matcher m = Pattern.compile("\\d+").matcher(s);
    int n = 0;
    while(m.find()) {
        n++;
    }
    System.out.println(n);
试试这个

    Matcher m = Pattern.compile("\\d+").matcher(s);
    int n = 0;
    while(m.find()) {
        n++;
    }
    System.out.println(n);
这将使len变为4

这将使len成为4。

检查此程序。。 `

`检查此程序。。 `


`

原始字符串是否只包含整数?。如果是这样的话,你可以把它用空格分开,数组的长度会给你答案。类似于123456.split.length.Well,根据您可能的输入,在任何不是整数或空格的地方拆分字符串,然后数一数您有多少部分?下决心吧。您想要字符串中的整数个数、它们的单个或总长度、每个或所有字符串中的位数吗?原始字符串是否只包含整数?。如果是这样的话,你可以把它用空格分开,数组的长度会给你答案。类似于123456.split.length.Well,根据您可能的输入,在任何不是整数或空格的地方拆分字符串,然后数一数您有多少部分?下决心吧。您想要字符串中的整数个数、它们的单个或总长度、每个或全部中的位数吗?OP不想要所有长度的总和,只看整数的数目就知道了example@Matteo所有长度的总和肯定会给出integers@JqueryLearnerop说明了示例123456,它应该返回4个整数实例。。您的代码统计数字。不是downvoter@ZouZou对不起,我误解了这个问题,我已经修改了答案。请告诉我答案是否正确wrong@JqueryLearner您可以只做int count=x.split.length;而不是长度OP不需要所有长度的总和,只需要看到他的整数数example@Matteo所有长度的总和肯定会给出integers@JqueryLearnerop说明了示例123456,它应该返回4个整数实例。。您的代码统计数字。不是downvoter@ZouZou对不起,我误解了这个问题,我已经修改了答案。请告诉我答案是否正确wrong@JqueryLearner您可以只做int count=x.split.length;而不是长度