如何用整数替换字符串中的字符?

时间:2013-09-07 13:11:53

标签: java

说我有字符串:“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);

4 个答案:

答案 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)以避免在

中使用正则表达式

_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 + "";

我之所以这样,是因为没有确定10。如果您的API /平台支持,您可以将ii2设置为可更改。