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

时间:2013-12-02 08:23:31

标签: java

我正在尝试计算字符串中实际的整数长度

我一直在使用这种方法来查找所有字符的长度

        whitespace = input.length() - input.replaceAll(" ", "").length();
        len = input.length()-whitespace;

但问题是当字符串包含大于9的整数

例如“1 2 3 456”,它应返回4个整数实例。

这段代码的长度为6。

我发现的另一种方式是

        int counter = 0;
        for (int i = 0, length = input.length(); i < len; i++) {
            if (Character.isDigit(input.charAt(i))) {
                counter++;
            }
        }

但这也会计算数字,而不是整数。

如何隔离大于9的整数来计算它们?

5 个答案:

答案 0 :(得分:3)

String input = "1 2 3 456";

int len=input.split(" ").length;

这将使len为4。

答案 1 :(得分:1)

你可以这样试试 -

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+");  
} 

答案 2 :(得分:1)

试试这个

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

答案 3 :(得分:1)

检查此程序.. `

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

boolean isInteger( String string )  
{  
   try  
   {  
      Integer.parseInt( string );  
      return true;  
   }  
   catch( Exception )  
   {  
      return false;  
   }  
}

`

答案 4 :(得分:0)

按照以下步骤操作

  1. 在存在空格的地方拆分字符串.split(“”)
  2. splitted string是数组类型
  3. 现在计算每个分割数组的长度
  4. 最后一步是添加所有长度(如果要计算整数的数量)
  5. 使用分割数组的长度方法来知道数量 整数实例
  6. 例如

    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