您好,这是我第一次在这里发帖,我环顾四周,但找不到我遇到的问题的答案。
我需要把这个字符串变成两个字符串:
"R(rndInt[-10,10]),R(rndInt[-10,10])"
至
"R(rndInt[-10,10])" "R(rndInt[-10,10])"
长话短说,我正在修改一个游戏并创建自己的脚本语言供人们使用。我制作了一个基于类/方法的结构(此处的注释: http://pastie.org/8825346 )。现在我正在尝试使您可以在方法中使用类/方法(适用于单参数方法)。
我现在遇到的问题是分割该字符串,因为它有多个逗号。我真的想不出一种方法可以在不引起问题的情况下拆分它。
有人可以帮忙吗?我现在很困惑。
编辑:已解决!
前瞻断言方法有效!我到现在都没听说过。
我忘了提及我不能使用“R”。 R 引用一个类,该类可以有不同的名称。
我通过对字符串进行子串化来找出“)”和“(”之间的内容,从而找到了该问题的解决方案。
String cName=oldStr.substring(oldStr.indexOf("),")+2);
cName=cName.substring(0, oldStr.indexOf("("));
System.out.println("CNAME:"+cName);
String[] test = oldStr.split(",(?="+cName+")");
谢谢你们,我非常感谢你们的帮助:)
最佳答案
如果您要创建自己的语言,最好将其视为一种语言并正确执行 lex/parse 。有一些开源工具可以帮助实现这一点,例如 JFlex .
但是,根据您当前的语言要求,您的结构足够简单,您可以按照其他答案中的建议进行 split()
。随着您的语言随着时间的推移而发展,这种方法可能仍然可行,也可能不可行。
关于java - 无法正确分割特定字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22136224/