Java 特定数字检测器问题
我写了一小段代码,通过命令行输入一个3位数字,然后它检测代码中有多少个5Java 特定数字检测器问题,java,string,digit,Java,String,Digit,我写了一小段代码,通过命令行输入一个3位数字,然后它检测代码中有多少个5 public class fivedet { public static void main (String[] args) { String input = args[0]; int[] a = {0,0,0}; int x = 0; int y = 0; int z = 0; for(int i = 0; i<input.length();i++
public class fivedet {
public static void main (String[] args) {
String input = args[0];
int[] a = {0,0,0};
int x = 0;
int y = 0;
int z = 0;
for(int i = 0; i<input.length();i++) {
a[i] = input.charAt(i) - 48;
}
if(a[0]==5) {
x=5;
}
if(a[1]==5) {
y=5;
}
if(a[2]==5) {
z=5;
}
System.out.println("5 digits here:" + x + y + z);
}
}
公共类五维网{
公共静态void main(字符串[]args){
字符串输入=args[0];
int[]a={0,0,0};
int x=0;
int y=0;
int z=0;
对于(int i=0;i来说,减法48是一种从字符转换为整数的快速但有点混乱的方法。每个数字的字符代码与其数值相差48
请参见此。(Java使用unicode,而不是ascii-字符串在内部为UTF-16-但值在这种特定情况下有效)。因此字符“0”的值为48;字符“9”的值为57
另一种方法是获取input
的1个字符的子字符串,然后对该字符串调用Integer.parseInt()
,将“1”转换为1,“2”转换为2,等等。检测字符5不需要转换为int。只需将它们作为字符计数即可
for (char i : args[0].toCharArray()) {
System.out.print(i == '5' ? i : '0');
}
对于计算字符串中字符的出现次数也有很好的答案