说我有字符串:“aab + bab = b”,我想
a
个字符替换为整数0,b
个字符替换为整数1 所以它会变成:
001 + 101 = 1
最简单的方法是什么?
到目前为止,我把这个等式分为三个部分:System.out.println("Enter an Equation of variables");
_inString = _in.nextLine();
//find the three different parts of the equation
String _noSpaces = _inString.replaceAll("\\s+","");
String delims = "[+,=]";
String[] _tokens = _noSpaces.split(delims);
答案 0 :(得分:3)
您可以将replace
方法链接在一起
String str = " aab + bab = b ";
str = str.replace("a", "0").replace("b", "1");
我们需要转回“' str'因为str.replace()返回一个新的String,原始字符串将保持不变。 [因为String在Java中是不可变的]
答案 1 :(得分:0)
你只有二进制操作数吗?
只做
replaceAll("a", "0");
replaceAll("b", "1");
修改
既然你想评估你的等式,我建议你使用上面的解决方案,然后使用java数学解析器。快速谷歌搜索后可以找到几个。
我最喜欢的是Javaluator。
答案 2 :(得分:0)
如果您想用其他单个字符替换单个字符,可以使用
replace(char oldChar, char newChar)
以避免在
replace(CharSequence target, CharSequence replacement)
或replaceAll(String regex, String replacement)
像
_inString = _inString.replace('a', '0').replace('b', '1');
答案 3 :(得分:0)
你也可以这样做:
String s = aab + bab = b;
int i = 0;
int i2 = 1;
String ii = i + "";
String ii2 = i2 + "";
我之所以这样,是因为没有确定1
和0
。如果您的API /平台支持,您可以将i
和i2
设置为可更改。