Получить массив из ввода разделенных значений - PullRequest
3 голосов
/ 02 июня 2010

У меня есть TextArea с вводом разделенных значений:

Например:

Value1

Value2

Value3

Value4

Value5

Есть ли быстрый способ поместить их в массив String

String[] newStringArray = ???

Ответы [ 2 ]

6 голосов
/ 02 июня 2010

Использование String.split(). Если ваш TextArea назван textArea, сделайте это:

String[] values = textArea.getText().split("\n");
3 голосов
/ 02 июня 2010

Вы хотите использовать String.split(String regex):

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

Итак, возможно, что-то вроде этого:

String[] newStringArray = textAreaContent.split("\n");

Это разбивает строку textAreaContent вокруг совпадений "\n", который является нормализованным разделителем новой строки для текстовых редакторов Swing (как указано в javax.swing.text.DefaultEditorKit API ):

[...] когда документ находится в памяти, символ "\n" используется для определения новой строки, независимо от того, как определяется новая строка, когда документ находится на диске. Поэтому для целей поиска всегда следует использовать "\n".

Регулярное выражение всегда может быть разработано для вашей конкретной потребности (например, как вы хотите обрабатывать несколько пустых строк?), Но этот метод делает то, что вам нужно.


Примеры * * тысяча тридцать одна String[] parts = "xx;yyy;z".split(";"); for (String part : parts) { System.out.println("<" + part + ">"); } Это печатает: <xx> <yyy> <z> Этот игнорирует несколько пустых строк: String[] lines = "\n\nLine1\n\n\nLine2\nLine3".trim().split("\n+"); for (String line : lines) { System.out.println("<" + line + ">"); } Это печатает: <Line1> <Line2> <Line3>

...