Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 特定数字检测器问题_Java_String_Digit - Fatal编程技术网

Java 特定数字检测器问题

Java 特定数字检测器问题,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++

我写了一小段代码,通过命令行输入一个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++) {
        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');

    }
对于计算字符串中字符的出现次数也有很好的答案