我需要找到数字1出现在字符串中的次数,例如“11100011” 这样我就可以使用计数来做一些奇偶校验位工作。我想知道是否有人可以告诉我什么方法或如何设置循环来做这样的事情。
public class message
{
private String parity1;
private int count;
public message(String Parity1)
{
parity1 = Parity1;
int count = 0;
}
public static int countOnes(String parity1, char 1)
{
count = 0;
for(int i = 0; i < parity1.length(); i++) {
if(parity1.charAt(i)==1){
count++;
}
}
return count;
}
//...
答案 0 :(得分:1)
您的比较存在问题:
if(parity1.charAt(i)=='1'){//note the quotes; needed to interpret '1' as a char
count++;
}
请注意,此功能签名错误:
public static int countOnes(String parity1, char 1)
应该是:
public static int countOnes(String parity1)
那里不需要第二个参数。如果您想传递此参数,请使用:
public static int countOnes(String haystack, char needle)
然后您的比较变为:
if(haystack.charAt(i)==needle){
另请注意,此方法中声明的count
错误。您正尝试从静态函数引用对象的成员字段。静态函数不与对象相关联,而是与类相关联。鉴于您不需要任何成员字段,您也可以在count
函数中声明countOnes
:
public static int countOnes(String parity1) {
int count = 0;
//...
}