как заменить целочисленный массив символами в java - PullRequest
0 голосов
/ 24 апреля 2020

int = 0111254

заменить все 0 на 'z'

заменить нечетные целые числа на 'p'

заменить четные целые числа на 'q'

Вывод должен быть zpppqpq

Моя часть кода ....

public static void main(String[] args) {
    int num;
    Scanner sc=new Scanner(System.in);
    num=sc.nextInt();
    int temp;
    int b[]=new int[10];
    char a[]=new char[10];


    for(int i=0;i<b.length;i++) {
        while(num!=0)
        {
            temp=num%10;

            b[i]=temp;

            num=num/10;
        }
    }

    for(int i=0;i<b.length;i=i+2)
    {
        if(b[i]==0)
        {
            b[i]=115;
        }

        else if(b[i]%2!=0)
        {
            b[i]=113;
        }
        else if(b[i]%2==0) {
            b[i]=112;
        }
    }

    for(int i=0;i<a.length;i++)
    {
        a[i]=(char)b[i];
    }

    for(int i:a)
    {
        System.out.print((char)i);
    }

это дает неправильный вывод qssss

Ответы [ 2 ]

2 голосов
/ 24 апреля 2020

Вы можете превратить это целое число в строку, а затем использовать String.replace().

String numberString = ""+0111254;
// Replace all 0 chars with z
numberString.replace('0','z');
// etc...
0 голосов
/ 24 апреля 2020

вы можете взять числа в строку, а затем преобразовать строки в массив, и, используя a для l oop, взять одно число и разобрать в целое число, затем применить вашу логику c.

public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String[] ary = String.valueOf(sc.next()).split("");

        StringBuilder answer = new StringBuilder();

        for (String n : ary) {
            int value = Integer.parseInt(n);
            if (value == 0) {
                answer.append("z");
            } else if (value % 2 == 0) {
                answer.append("q");
            } else {
                answer.append("p");
            }
        }

        System.out.print(answer.toString());
    }
...