Java 如何拆分复杂字符串?

Java 如何拆分复杂字符串?,java,regex,Java,Regex,我想通过忽略(购买),-,(出售)来拆分此字符串 我想要的最终结果是这样的655500 656500 上面是一个示例..实际上我的字符串包含UTF-8字符..但是我把它放在这里了您最好的方法是为序列定义一个正则表达式模式匹配,并从中提取值 这应该行得通也许。。。Required是提供所需结果的字符串。正则表达式 String string = "(Buy) 655500 - (Sell) 656500"; String needed = string.replaceAll("[\"(Buy)

我想通过忽略
(购买)
-
(出售)
来拆分此字符串

我想要的最终结果是这样的
655500 656500


上面是一个示例..实际上我的字符串包含UTF-8字符..但是我把它放在这里了

您最好的方法是为序列定义一个正则表达式模式匹配,并从中提取值

这应该行得通也许。。。Required是提供所需结果的字符串。

正则表达式

String string = "(Buy) 655500 - (Sell) 656500";

String needed = string.replaceAll("[\"(Buy)(Sell)-]", "");

如果您的语法总是这样,您可以这样拆分:

    String src = "(Buy) 655500 - (Sell) 656500";
    String reg = "[0-9]+";
    Pattern pattern = Pattern.compile(reg);
    Matcher matcher = pattern.matcher(src);
    while(matcher.find()) {
       System.out.println(matcher.group());
    }
在这里: 值[0]将为655500 值[1]将为656500

如果您的要求不同,请以另一种方式进行评论。

String string = "(Buy) 655500 - (Sell) 656500";
String replaced= string.replaceAll("[(Buy)(Sell)]", "");
String[] values = replaced.split("-");
以下是输出:

String baseStr = "(Buy) 655500 - (Sell) 656500";  
String buy = baseStr.split("-")[0].replaceAll("\\D+", "");  
String sell = baseStr.split("-")[1].replaceAll("\\D+", "");  

System.out.println("Base String: " + baseStr);  
System.out.println("Buy String : " + buy);  
System.out.println("Sell String: " + sell);  
试试这个:

Base String: (Buy) 655500 - (Sell) 656500  
Buy String : 655500  
Sell String: 656500  
String text=“(买入)655500-(卖出)656500”;
列表部分=新链接列表(Arrays.asList(text.split(\\D));
parts.removeAll(Arrays.asList(“”));
系统输出打印LN(部件);

Fnd您将得到字符串中的数字列表。

您能告诉我们您到目前为止试图解决这个问题的方法吗?如果您的语法总是这样,您可以在空格上拆分,并始终知道数字的数组索引……如果答案有效,请给出并接受答案:)我认为这是与我的代码..通过使用正则表达式,这对于UTF8字符条件是最好的..感谢Longwayto
Base String: (Buy) 655500 - (Sell) 656500  
Buy String : 655500  
Sell String: 656500  
    String text = "(Buy) 655500 - (Sell) 656500";
    List<String> parts = new LinkedList<String>(Arrays.asList(text.split("\\D")));
    parts.removeAll(Arrays.asList(""));
    System.out.println(parts);