从输入分隔值获取数组

Ste*_*gas 3 java arrays string space

我有一个TextArea输入分隔值:

例如:

Value1

Value2

Value3

Value4

Value5

有没有一种快速的方法将它们放在一个String数组中

String[] newStringArray = ???
Run Code Online (Sandbox Code Playgroud)

jas*_*p85 6

使用String.split().如果您TextArea已命名textArea,请执行以下操作:

String[] values = textArea.getText().split("\n");
Run Code Online (Sandbox Code Playgroud)

  • 如果值也可以用空行分隔,请使用`.split("\n +")`. (2认同)

pol*_*nts 5

你想使用String.split(String regex)

返回: 通过围绕给定正则表达式的匹配拆分此字符串计算出的字符串数组

所以,也许是这样的:

String[] newStringArray = textAreaContent.split("\n");
Run Code Online (Sandbox Code Playgroud)

这将textAreaContent围绕 的匹配拆分字符串"\n",这是 Swing 文本编辑器的规范化换行符(如javax.swing.text.DefaultEditorKitAPI 中所指定):

[...] 当文档在内存中时,该"\n"字符用于定义换行符,无论文档在磁盘上时如何定义换行符。因此,出于搜索目的,"\n"应始终使用。

正则表达式总是可以满足您的特定需求(例如,您想如何处理多个空行?)但是这种方法可以满足您的需求。


例子

    String[] parts = "xx;yyy;z".split(";");
    for (String part : parts) {
        System.out.println("<" + part + ">");   
    }
Run Code Online (Sandbox Code Playgroud)

这打印:

<xx>
<yyy>
<z>
Run Code Online (Sandbox Code Playgroud)

这个忽略多个空行:

    String[] lines = "\n\nLine1\n\n\nLine2\nLine3".trim().split("\n+");
    for (String line : lines) {
        System.out.println("<" + line + ">");           
    }
Run Code Online (Sandbox Code Playgroud)

这打印:

<Line1>
<Line2>
<Line3>
Run Code Online (Sandbox Code Playgroud)