Java 如何按空格分割字符串(有异常)
我正在构建Java语音控制计算器,在解析输入时遇到问题。例如,我有输入 十除以五 我想把这个字符串按空格分割成一个数组,但是我不想分割“divide by”,所以输出应该是Java 如何按空格分割字符串(有异常),java,regex,parsing,text-parsing,string-parsing,Java,Regex,Parsing,Text Parsing,String Parsing,我正在构建Java语音控制计算器,在解析输入时遇到问题。例如,我有输入 十除以五 我想把这个字符串按空格分割成一个数组,但是我不想分割“divide by”,所以输出应该是 十 除以 五 请帮忙。我尝试使用正则表达式,但没有成功 非常感谢。您可以定义一个非拆分短语列表(例如,除以,等于),而不是按空格拆分,使用交替匹配所有此类短语或单个单词: \b(?:divide by|equals to)\b|\w+ 演示: Java代码: String input = "ten divide by
- 十
- 除以
- 五
非常感谢。您可以定义一个非拆分短语列表(例如,
除以
,等于
),而不是按空格拆分,使用交替匹配所有此类短语或单个单词:
\b(?:divide by|equals to)\b|\w+
演示:
Java代码:
String input = "ten divide by five equals to two";
Pattern pattern = Pattern.compile("\\b(?:divide by|equals to)\\b|\\w+");
Matcher matcher = pattern.matcher(input);
while (matcher.find()) {
System.out.println(matcher.group(0));
}
演示:您可以定义一个非拆分短语列表(例如,
除以
,等于
),而不是按空格拆分,使用交替匹配所有此类短语或单个单词:
\b(?:divide by|equals to)\b|\w+
演示:
Java代码:
String input = "ten divide by five equals to two";
Pattern pattern = Pattern.compile("\\b(?:divide by|equals to)\\b|\\w+");
Matcher matcher = pattern.matcher(input);
while (matcher.find()) {
System.out.println(matcher.group(0));
}
演示:解决此问题的另一种方法,如果您有一个小数据集,并且您知道以下单词的大小(不应按空格分割)始终为2个字母或更少,您可以尝试类似于此的正则表达式:
\s(?=\w{2}\S)
演示:解决此问题的另一种方法,如果您有一个小数据集,并且您知道以下单词的大小(不应按空格分割)始终为2个字母或更少,您可以尝试类似于此的正则表达式:
\s(?=\w{2}\S)
演示: