如何计算数组的每个字符串中有多少位数?

时间:2016-04-28 02:32:44

标签: java arrays string

指令用于计算数组的每个字符串中的位数,并分配给numberDigits。

我在这里做错了什么?

public void computeStatistics(String []strings){    
    numberDigits = 0;
    for(String s : strings){
        for(int i : s.toCharArray()){
            if(i >= 0 || i <= 2)
                numberDigits++;
        }
    }
}

3 个答案:

答案 0 :(得分:0)

我不确定你是否正确理解了你的问题是否计算字符串数组中的位数?SELECT ...IN(...)

答案 1 :(得分:0)

我假设你的字符串是alpha nummeric。你的if条件错了。 char数据类型具有其对应ASCII值的整数表示形式。所以char a =&#39; A&#39;当转换为int实际上存储为65.所以char&#39; 0&#39; 0存储在迭代的数组中的数据存储在i为48.您正在检查0到9个ascii代码,因此这段代码不起作用。要么将条件改为

if(i>=48 && i<=57) 

或者我认为一个好的一般政策是将char保持为char。

for(char ch:s.toCharArrat())
    if(ch>='0' && ch<='9')

这样你就不必考虑ascii了。转换char&#39; 0&#39;到int执行以下操作。

int i = (int)ch - (int)'0';

这将给出相应的整数。

答案 2 :(得分:0)

或者,由于总数字计数很重要,所有字符串都可以连接成单个字符,如果数字是数字,则可以检查每个字符。

public  void computeStatistics(String[] strings) {

    numberDigits = 0;
    //Converting all strings in array to single string 
    String cmbStr = Arrays.toString(strings);

    for (Character c : cmbStr.toCharArray()) {
        //checking each character is digit
        if (Character.isDigit(c))
            numberDigits++;
    }
}