Увеличение строки

1

Как взять ввод и увеличить каждую букву на один, например, "ABC" до "BCD" в Java. Ниже я попытался изменить строку на int, а затем увеличить значение на 1.

import java.util.Scanner;
public class w7q3 {

    public static void main(String[] args) {
        Scanner in = new Scanner (System.in);
        String str ="";
        int A = 0;

        System.out.println ("Enter String");

        str = in.nextLine(); 

         int num = Integer.parseInt(str);

        num= num +1;


        System.out.println(str);
    }


    }
  • 0
    Что произойдет, если буквы не являются последовательными, например, «ADT»? Что произойдет, если одна из букв будет "Z"?
  • 2
    Я полагаю, вы получите случайный мусор ASCII. Звучит как домашнее задание, но не знаю, кто будет делать домашнее задание на Рождество.
Показать ещё 1 комментарий
Теги:

1 ответ

4

Перемещайте каждый char в String, добавьте его в char и отбросите его обратно в char добавьте его в StringBuilder. Что-то вроде,

Scanner in = new Scanner(System.in);
System.out.println("Enter String");
String str = in.nextLine();
StringBuilder sb = new StringBuilder();
for (char ch : str.toCharArray()) {
    sb.append((char) (ch + 1));
}
System.out.println(sb.toString());

Конечно, если вы хотите обработать обертку, вы можете сделать что-то вроде

for (char ch : str.toCharArray()) {
    char o = ((char) (ch + 1));
    if (Character.isDigit(ch)) {
        if (o > '9') {
            o = '0';
        }
    } else if (Character.isLowerCase(ch)) {
        if (o > 'z') {
            o = 'a';
        }
    } else if (Character.isUpperCase(ch)) {
        if (o > 'Z') {
            o = 'A';
        }
    }
    sb.append(o);
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню