[英]How do I count how many digits are in every string of an array?
指令用于计算数组的每个字符串中的位数,并将其分配给numberDigits。
我在这里做错了什么?
public void computeStatistics(String []strings){
numberDigits = 0;
for(String s : strings){
for(int i : s.toCharArray()){
if(i >= 0 || i <= 2)
numberDigits++;
}
}
}
不确定我是否正确理解了您的问题,您是否在计算字符串数组中的位数? public int computeStatistics(String []strings){ int numberDigits = 0; for(String s : strings){ s = s.replaceAll("\\D+",""); numberDigits = numberDigits + s.length(); } return numberDigits; }
我假设您的字符串是字母数字。 您的条件是否错误。 char数据类型具有其相应ASCII值的整数表示。 因此,将char a ='A'转换为int时,实际上存储为65。因此,将要迭代的数组中存储的char'0'存储在i中,存储为i。48。您正在检查0到9之间的ascii代码和因此,此代码将无法正常工作。 如果条件为
if(i>=48 && i<=57)
或者,我发现一个好的常规策略是将char保留为char。
for(char ch:s.toCharArrat())
if(ch>='0' && ch<='9')
这样,您就不必考虑ascii。 要将char'0'转换为int,请执行以下操作。
int i = (int)ch - (int)'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++;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.