0

假设我有字符串:“ 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

4 回答 4

4

您可以将replace方法链接在一起

String str = " aab + bab = b ";
str = str.replace("a", "0").replace("b", "1");

我们需要对 'str' 进行赋值,因为 str.replace() 返回一个新字符串,而原始字符串将保持不变。[因为 String 在 Java 中是不可变的]

于 2013-09-07T13:15:06.093 回答
1

你也可以这样做:

String s = aab + bab = b;

int i = 0;
int i2 = 1;

String ii = i + "";
String ii2 = i2 + "";

我使用它是因为说1并且0未被识别。如果您的 API/平台支持,您可以设置ii2更改。

于 2017-07-10T04:30:21.777 回答
0

你只有二进制操作数吗?

做就是了

replaceAll("a", "0");
replaceAll("b", "1");

编辑

由于您想评估您的方程式,我建议您使用上面的解决方案,然后使用 java 数学解析器。快速搜索后可以找到几个。

我最喜欢的是Javaluator

于 2013-09-07T13:13:54.283 回答
0

如果你想用其他单个字符替换单个字符,你可以使用它
replace(char oldChar, char newChar)来避免使用 regex

_inString = _inString.replace('a', '0').replace('b', '1');
于 2013-09-07T13:19:22.643 回答