Мне нужно взять первые N символов из ввода - PullRequest
0 голосов
/ 20 ноября 2018

Я только начинаю на Java.Мне нужно взять первые N символов из ввода.Входные данные включают количество символов в начале входной строки, а затем символы.Выходные данные включают число в начале.

Например, если пользователь вводит «3stars», вывод будет «3st», или вывод «7appendices» будет «7append».

Пробовал следующее:

  Scanner input = new Scanner(System.in);
      System.out.print("Please enter a uncoded string: ");
      String first = input.nextLine();
      input.close();

      if (first.charAt(0) == 'u') {
          first = first.toUpperCase();
      } else if (first.charAt(0) == 'l') {
          first = first.toLowerCase();
      } else if (first.charAt(0) == 'e') {
            String str = "";
            for (int i = 0; i < first.length(); i = i + 2) {
                str += first.charAt(i);
            }
            first = str;
        } else if (first.charAt(0) == 'o') {
            String str = "";
            for (int i = 1; i < first.length(); i = i + 2) {
                str += first.charAt(i);
            }
            first = str;
        } else if (first.charAt(0) == 1++) {
            String str = "";
            for (int i = 1++ ; i < first.length(i); i = i charAt(i)) {
                str += first.charAt(i);
            }
            first = str;

Любая помощь будет отличной.

Ответы [ 2 ]

0 голосов
/ 21 ноября 2018

это также работает с вводом типа 11abcdefghijklmnopqrstuvwxyz с числами больше 9

public static void main(String[] args) {
    String input = "7appendices";
    // match numbers
    Pattern p = Pattern.compile("^([0-9]+)");
    // by default at least the integer has one digit
    int digits = 1;
    int length = 0;
    // while the beginning of the input match an integer
    while (p.matcher(input.substring(0, digits)).matches()) {
        // set length as the integer at the beginning
        length = Integer.parseInt(input.substring(0, digits));
        // increase the amount of digits from the integer in the input
        digits++;
    }
    System.out.println(input.substring(0, length));
}

Вам нужно только заменить ввод на scanner, как это

 String input = new Scanner(System.in).next();
0 голосов
/ 21 ноября 2018

Надеюсь, это поможет:

int num = Character.getNumericValue(first.charAt(0));

String str = "";
for(int i = 0;i < num;i++){
   str += first.charAt(i);
}
System.out.println(str);
...