Разделение каждой строки, введенной пользователем, с запятой - PullRequest
0 голосов
/ 11 января 2019

Я должен разделить каждую строку, которую пользователь вводит, запятой. Например, если пользователь входит в «Кролик», я должен распечатать его как «R, a, b, b, i, t»

Для этого я искал метод разбиения String.split ();

Код, который я написал, выглядит следующим образом

import java.util.*;

class Split{

    public static void main(String [] args){
        Scanner input = new Scanner(System.in);
        System.out.println("Enter a String");
        String str= input.nextLine();
        printLetters(str);
    }

    public static String[] printLetters (String a){
        return a.split(",");
    }
}

На самом деле я должен писать код, используя метод, который принимает строки, но когда я написал String.split(), он сказал, что должен использовать String [], поэтому я просто изменил его на String [].

Но этот код ничего не печатал. Я хочу знать, почему это так, а также хочу узнать, как выполнить эту задачу, используя открытую статическую строку.

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

Я тоже не изучал метод разделения, поэтому я не должен использовать его, если честно.

Это мой первый год обучения информатике, и единственное, что я знаю, это для циклов, если еще, вложенных циклов и т. д.

Было бы предпочтительнее не использовать метод split, но его можно использовать, потому что мне тоже интересно.

Заранее спасибо :)

Ответы [ 3 ]

0 голосов
/ 11 января 2019
public static void printLetters (String a){
    String output = "";
    for (int i=0; i<a.length(); i++)
    {
      output += a.charAt(i);
      if (i != a.length()-1)
      output += ",";
    }
    System.out.println(output);
}

Смотрите ответ @Andrew Fan. Он описывает, что делает метод split. То, что вам нужно сделать, это как обратное. Вы можете использовать цикл for или цикл while.

* Поскольку вы новичок в программировании,

output += ","

совпадает с

output = output + ","
0 голосов
/ 11 января 2019

Использование String.join().

import java.util.*;

    class Split{

        public static void main(String [] args){
            Scanner input = new Scanner(System.in);
            System.out.println("Enter a String");
            String str= input.nextLine();
            String word = printLetters(str);
            System.out.println(word);
        }

        public static String printLetters (String a){
            return String.join(", ", a.split(""));
        }
    }

enter image description here

См. String.join () и String.split () для получения дополнительной информации.

0 голосов
/ 11 января 2019

Из того, что я вижу, вы пытаетесь взять входную строку и вернуть новую строку со вставленными запятыми после каждого символа.

String.split() делает что-то совсем другое. Например, если бы у меня было "R, a, b, b, i, t", я мог бы использовать String.split () с разделителем ,, чтобы получить ["R", "a", "b", " b "," i "," t "] назад.

Простым решением вашей проблемы было бы перебирать вводимую строку символ за символом и после каждого символа, кроме последнего, добавлять запятую в возвращаемую строку.

Поскольку ваше задание - сделать это самостоятельно, я не буду публиковать кодовое решение. Тем не менее, я надеюсь, что мое объяснение прояснило ваши заблуждения и вам достаточно, чтобы написать решение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...