【问题标题】:Get array from enter separated values从输入分隔值中获取数组
【发布时间】:2011-02-26 17:50:29
【问题描述】:

我有一个带有输入分隔值的TextArea

例如:

价值1 价值2 价值3 价值4 价值5

有没有一种快速的方法可以将它们放入String 数组中

String[] newStringArray = ???

【问题讨论】:

  • “新行分隔值”会比 输入分隔值 更清晰

标签: java string arrays space


【解决方案1】:

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

String[] values = textArea.getText().split("\n");

【讨论】:

  • 如果值也可以用空行分隔,请使用.split("\n+")
  • +1。 String.split() 将正则表达式作为其第一个参数。如果您以前没有遇到过它们,那么它们非常值得学习。这是我有一段时间拒绝学习的东西,现在我很了解它们,我每天都在使用它们。
【解决方案2】:

你想使用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>

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-12-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-21
  • 2015-05-29
相关资源
最近更新 更多