指令用于计算数组的每个字符串中的位数,并分配给numberDigits。
我在这里做错了什么?
public void computeStatistics(String []strings){
numberDigits = 0;
for(String s : strings){
for(int i : s.toCharArray()){
if(i >= 0 || i <= 2)
numberDigits++;
}
}
}
答案 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++;
}
}