Как правильно разделить строку на ArrayList? - PullRequest
0 голосов
/ 18 июня 2020

Моя программа предназначена для разделения строк и помещения их в массив. Например, если я ввожу значение LONDON, я все равно получаю строку [LONDON], а не то, что я хотел, а именно [L, O, N, D, O, N].

import java.io.IOException;
import java.util.*;

class Main {
public static void main(String[] args) throws IOException {
    ArrayList<String> myArrayList =
            new ArrayList<String>();

    System.out.println("\n" +
            "This is the capacity before adding any strings " +
            myArrayList.size());
    System.out.println("\n" +
            "I will now add a string of my name seperated in the " +
            "Array List");

    myArrayList.add("E");
    myArrayList.add("M");
    myArrayList.add("M");
    myArrayList.add("A");
    myArrayList.add("N");
    myArrayList.add("U");
    myArrayList.add("E");
    myArrayList.add("L");

    System.out.println("\n" +
            "Now let us see the size of the Array List now I have" +
            "put in my name " + myArrayList.size());
    System.out.println("\n" +
            "Let us see what the program has put into my Array List " +
            myArrayList);

    System.out.println("\n" +
            "Now input your own strings!");

    ArrayMods arrayMods
            = new ArrayMods();
    while(true) {
        arrayMods.inputToSeparatedArray();

        System.out.println("This is your Array!" +
                arrayMods.putCharString() +
                "Type in your next string!");
    }
}

}
class ArrayMods{
public char[] inputToSeparatedArray(){
    Scanner scanInput = new Scanner(System.in);
    String toBeSeparated;

    toBeSeparated = scanInput.nextLine();

    return toBeSeparated.toCharArray();
}
public ArrayList<String> putCharString() {
    char[] receivingArray = inputToSeparatedArray();
    for (int x = 0; x > receivingArray.length; x++) {
        putCharString().add(String.valueOf(receivingArray[x]));
    }
    List<String> l = Collections.<String>singletonList(String.valueOf(receivingArray));

    return new ArrayList<String>(l);
}
}

Ответы [ 2 ]

1 голос
/ 18 июня 2020

Вы можете создать массив символов и выполнять итерацию или потоковую передачу символов в строке, чтобы заполнить его следующим образом:

String test = "LONDON";
Character[] charObjectArray =
        test.chars().mapToObj(c -> (char)c).toArray(Character[]::new);

Также можно сделать со списком:

List<Character> listOfChars = 
        test.chars().mapToObj(c -> (char) c).collect(Collectors.toList());

ВЫХОД :

[L, O, N, D, O, N]
0 голосов
/ 18 июня 2020

Если единственное, что вы хотите сделать, это вывести его, как вы упомянули выше:

 String myString = "LONDON";
    List<Character> splittedString = new ArrayList<>();
    for (int i = 0; i < myString.length(); i++)
        splittedString.add(myString.charAt(i));
    System.out.println(splittedString);

Если единственное, что вы хотите, - это разделить их, и вывод на самом деле не имеет значения, вы можете используйте тот же код, но с массивом символов. Единственное, что произойдет, это то, что wen напечатан, вывод будет LONDON вместо L, O, N, D, O, N (как вы упомянули выше).

Вы все равно можете использовать for или forEach и распечатайте его таким образом.

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