Как поместить первый символ строки в последнюю позицию строки в Java? - PullRequest
0 голосов
/ 28 февраля 2020

Начинающий Java программист. Для школьного задания мне нужно написать программу, которая выполняет некоторые вычисления с номером и тем же номером, если его первый член / символ был помещен в последнюю позицию (например, 2567 и 5672). Я решил go об этом, преобразовав числа в строки, получив первый символ каждой строки и поместив его сзади, чтобы получить второе нужное мне число. Хотя я предполагаю, что это очень глупый вопрос, я не могу найти способ манипулирования строками так, как мне нужно, так как мне это сделать?

Заранее спасибо!

Поскольку я разместил код целиком, я также включу то, из чего состоит вся проблема: вычисление, превышает ли разница между A и B (например, 2567 и 5672) больше 5000. Если это - A, то должно быть напечатано, затем то же самое для всех чисел A в диапазоне от 10 до 10000, и B - это A, первый символ которого является последним.



public class new1 {

    public static void main (String[] args){

        int bot = 10;
        int top = 10000;
        int difference = 5000;
        int a, b, c;
        a = bot;

        while (a<10000) {
            String str1 = String.valueOf(a);
            // my question comes at about this point
            String str2 = "10"; // this line is just as an example; my idea is to then convert back to int and store in b for calculation;
            b = Integer.parseInt(str2);

            c = a - b;

            if (c > difference)
                System.out.println(c);
            else
                a++;
        }
        System.out.println("End");
    }
}

Ответы [ 2 ]

2 голосов
/ 28 февраля 2020
  1. Взять входные данные в виде строки.
  2. Взять все символы в этой строке, кроме 1-й позиции.
  3. добавить символы в 1-м месте в строку выше

    String str = String.valueOf(2567); System.out.println(str.substring(1)+str.substring(0,1));

1 голос
/ 28 февраля 2020

if it's first member/character has been placed in the last position (e.g. 2567 and 5672).

Я не уверен, что понимаю, но первый символ - charAt(0), а последний - charAt(str.length()-1).

ОК. Я перечитал ваш пример, и я думаю, что я вижу другую интерпретацию. Вы также можете удалить символы с помощью substring() и добавить их снова с конкатенацией, что проще всего сделать с +.

while (a<10000) {
    String str1 = String.valueOf(a);
    // problem: move first char to last;
    String str2 = "10"; // example; convert to int and store in b for calculation;

    // this takes the first character of str1 and moves it to 
    // end of str2.

    // 1. Make a copy first
    char first = str1.charAt(0);
    // 2. Now remove the character and assign to str2
    str2 = str1.substring(1);
    // 3. Place the saved copy at the end
    str2 = str2 + first;

    b = Integer.parseInt(str2);

    c = a - b;

    if (c > difference)
        System.out.println(c);
    else
        a++;
...