Создание строки из цикла приводит к Java - PullRequest
0 голосов
/ 10 февраля 2019

Мне нужно иметь возможность сохранять результаты цикла в строку, чтобы иметь возможность манипулировать пользовательским выводом.Нет массивов

Я попытался преобразовать строку в цикл, что не имеет особого смысла.Я не могу найти другой способ сохранить результаты, если я не сделаю другой метод.Мне не разрешено создавать массивы.

    public static void main(String[] args){
        Scanner input = new Scanner(System.in);

            System.out.print("Enter phone number: ");
            String number = input.nextLine();
            String phone ="";

            for (int i = 0; i < number.length(); i++){
                if (Character.isLetter(number.charAt(i)))
                    phone = getNumber(Character.toUpperCase(number.charAt(i)));
                else
                    number.charAt(i);
            }
            System.out.println("Your number is " + phone);              
    }


public static int getNumber(char uppercaseLetter){
        if (uppercaseLetter >= 'W' && uppercaseLetter <= 'Z')
            return 9;
        else if (uppercaseLetter >= 'T' && uppercaseLetter < 'W')
            return 8;
        else if (uppercaseLetter >= 'P' && uppercaseLetter < 'T')
            return 7;
        else if (uppercaseLetter >= 'M' && uppercaseLetter < 'P')
            return 6;
        else if (uppercaseLetter >= 'J' && uppercaseLetter < 'M')
            return 5;
        else if (uppercaseLetter >= 'G' && uppercaseLetter < 'J')
            return 4;
        else if (uppercaseLetter >= 'D' && uppercaseLetter < 'G')
            return 3;
        else 
            return 2;
    }
}

должно выглядеть так: т.е.352-hey-call = "Ваш номер 352-439-2255"

1 Ответ

0 голосов
/ 10 февраля 2019

На самом деле, для каждого символа вы ищете соответствующую букву или цифру, но вы не используете их, вам нужно добавить их вместе.Используя оператор += для String, но поскольку он находится в цикле для лучшей производительности, рекомендуется использовать StringBuilder

StringBuilder phone = new StringBuilder();
for (int i = 0; i < number.length(); i++){
    if (Character.isLetter(number.charAt(i))){
        phone.append(getNumber(Character.toUpperCase(number.charAt(i))));
    }else{
        phone.append(number.charAt(i));
    }
}

System.out.println("Your number is " + phone.toString());
...