Java Netbeans : Splitting a string using regular expressions

标签 java regex string netbeans split

先生们,

我正在 Java Netbeans 工作。我正在尝试使用正则表达式将字符串拆分为字符串数组。本质上,如果用户输入:

Hello World <5>你好吗谷歌!

进入 jTextArea,我希望将上面的字符串输入到名为 arrayOfStringsToProcess 的数组中以便进一步加工。在序列末尾,arrayOfStringsToProcess 的值应该是:

{"Hello World", "5" , "How are you", "yahoo", "google!"} 

我不在乎其中是否有换行符。

当我尝试(在 netbeans 中)时:

String inputFromTextField = "";
String regularExpressionToSplit = "<>";
String[] arrayOfStringsToProcess;
inputFromTextArea = jTextArea23.getText();
arrayOfStringsToProcess = inputFromTextArea.split(regularExpressionToSplit);

代码编译并执行,但整个字符串是从 jTextArea23 获取的。被加载到arrayOfStringsToProcess的第0个元素中就好像从未发生过 split 一样。

据我所知,上面的代码在 netbeans 之外可以很好地完成工作,但 netbeans 根本不想根据正则表达式拆分字符串。

最后,当我将“正则表达式”减​​少为单个分隔字符时,例如 "<" netbeans 将以这种方式分割字符串:

{"Hello World", "5> How are you", "yahoo> google!"}

显然,这段代码可以编译并执行,但不会产生我想要的输出。

有没有一种方法可以在 Java netbeans 中做到这一点,而无需诉诸诸如计算 < 的数量之类的废话。和>放在字符串中,然后一次将字符串分开?我无法提前知道用户将在 jTextArea23 中输入多少个字符。

我确信这个确切的问题已经在某个地方被问过并且答案就在那里。我只是真的不知道在搜索中使用哪些关键字。任何帮助将不胜感激,

布伦特原油。

最佳答案

您需要使用的模式需要说:我想在 > 处分割或< 。这表示为 regular expression|特点。所以你可以使用模式 <|> 。请注意,如果您还想围绕空格进行拆分,则可以添加 \\s*匹配零个或多个空格。

public static void main(String[] args) {
    String str = "Hello World <5> How are you < yahoo > google!";
    String[] tokens = str.split("\\s*<\\s*|\\s*>\\s*");
    System.out.println(Arrays.toString(tokens)); // prints "[Hello World, 5, How are you, yahoo, google!]"
}

关于Java Netbeans : Splitting a string using regular expressions,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35952039/

相关文章:

java - 泛型类和非静态方法

java - 正则表达式在所有标点符号之间添加空格

java - 如何用java从数据中删除 header

需要全局匹配帮助的 JavaScript 正则表达式

Javascript 正则表达式与非捕获组作为两种选择

c - 我不知道这段代码出了什么问题?

xml 中的 Android 粗体文本不起作用

java - 将鼠标悬停在动画菜单上并单击 selenium 中的菜单项

R 中的正则表达式 : matching the string before a sequence of characters

python - 查找大型列表是否包含特定字符串的最有效方法 (Python)