【问题标题】:How would I properly separate a string into an ArrayList?我将如何正确地将字符串分成 ArrayList?
【发布时间】:2020-10-08 18:17:02
【问题描述】:

我的程序旨在分离字符串,然后将它们放入数组中。例如,如果我输入值 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);
}
}

【问题讨论】:

  • 您的问题不清楚。在标题中你声称你想要 ArrayList,但在问题本身你说“..然后将它们放入数组”。 ArrayList 与数组不同。使用edit 选项阐明预期结果。

标签: java arrays string arraylist


【解决方案1】:

您可以创建一个字符数组并迭代或流过字符串中的字符以像这样填充它:

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

也可以对List做:

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

输出

[L, O, N, D, O, N]

【讨论】:

    【解决方案2】:

    如果您只想按照上面提到的方式输出它:

     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);
    

    如果您只想拆分它们并且输出并不重要,您可以使用相同的代码但使用 char 数组。唯一会发生的事情是,如果打印出来,输出将是 LONDON 而不是 L、O、N、D、O、N(如上所述)。

    您仍然可以使用 for 或 forEach 并以这种方式打印。

    【讨论】:

    • 好的谢谢我的问题没有正确表达抱歉
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-15
    • 2020-11-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多