我有一个String,String a=newNumber"*"nn"差异;
newNumber=106,nn=3和差异=3。
输出:106*3
我想修改这个字符串,使输出变成(35*3 1)*3 3
,然后用这个新字符串我想再次修改它,使它变成((11*3 2)*3 1)*3 3
,基本上我只需要替换新的数字,它是106,并且一直变为11,正如你所看到的,我试图只修改newNumber并用另一个替换它,同时保持整个字符串不变,我只是替换并添加它,这是如何实现的?输出应该是这样的,输出:
106*3+3
(35*3+1)*3+3
((11*3+2)*3+1)*3+3
我在用步骤求解一个方程,公式无关紧要,我只是想弄清楚如何用另一个数字替换新的数字,并在方程中添加新的括号来修改字符串。我希望我用你能理解的方式写下我的问题,我非常感谢你的帮助。
java中的字符串是不可变的。您必须使用StringBuilder或字符串缓冲区
我无法得到与您相同的输出,但这里的代码试图解决这个问题,我认为它可能会给您一些帮助,尽管您可以解决这个问题。
将数分解为素数,并将素数加到结果中。由于我们正在替换字符串并添加字符串,因此最好使用StringBuilder
。
import java.io.PrintStream;
import java.util.Arrays;
public class StringSimplification {
public static PrintStream out = System.out;
public static final boolean prime[];
public static final int SIZE = 1000000;
static {
prime = new boolean[SIZE];
Arrays.fill(prime, true);
prime[0] = prime[1] = false;
//Sieve of Eratosthenes algorithm to find weather number is prime
for (int i = 2; i < SIZE; i++)
if (prime[i])
for (int j = i * 2; j < SIZE; j += i)
prime[j] = false;
}
//simplifies your String expression
public static String simplify(final String expression) {
StringBuilder result = new StringBuilder("");
String exp = "";
for (char ch : expression.toCharArray()) {
if (Character.isDigit(ch))
exp += ch;
else {
if (isNumber(exp)) {
String simplified = getExpression(Integer.parseInt(exp));
result.append(simplified+ch);
exp = "";//clearing exp
};
}
}
result.append(exp);
return result.toString();
}
//returns weather number is prime or not
static boolean isPrime(final int val) {
return prime[val];
}
static String getExpression(final int val) {
if (val == 0 || val == 1 || prime[val])
return "(" + val + ")";
int prev = 1;
int div = 1;
for (int i = 1; i < val; i++) {
if (val % i == 0) {
prev = i;
div = val / i;
}
}
return getExpression(prev) + "*" + getExpression(div);
}
//Check's weather the expression is number
public static boolean isNumber(final String s) {
for (var c : s.toCharArray())
if (!Character.isDigit(c))
return false;
return s.length() > 0;
}
public static void main(final String... $) {
out.println(simplify("106*3+3"));
out.println(simplify("1024*3+3"));
}
}
输出:
(53)*(2)*(3)+3
(2)*(2)*(2)*(2)*(2)*(2)*(2)*(2)*(2)*(2)*(3)+3
您实际上不能修改Strings,但是您可以像这样使用replace eFirst()
:
s = s.replaceFirst("106", "(35*3+1)");
s = s.replaceFirst("35", "(11*3+2)");
等
修改字符串 到目前为止,我们简单地搜索了一个静态字符串。正则表达式通常也用不同的方式,通过下面的 RegexObject 方法,来修改字符串。 方法/属性 作用 split() 将字符串在 RE 匹配的地方分片并生成一个列表, sub() 找到 RE 匹配的所有子串,并将其用一个不同的字符串替换 subn() 与 sub() 相同,但返回新的字符串和替换次数
本文向大家介绍C++ 修改字符串文字,包括了C++ 修改字符串文字的使用技巧和注意事项,需要的朋友参考一下 示例 C ++ 11 "hello world" 是字符串文字,因此对其进行修改会产生未定义的行为。 str上面示例中的初始化在C ++ 03中已正式弃用(计划从该标准的将来版本中删除)。2003年之前,许多编译器可能对此发出警告(例如,可疑转换)。2003年之后,编译器通常会警告不要使用转
问题内容: 曾经有人要求我创建一个给定字符串的函数,然后从字符串中删除一些字符。 是否可以在Python中执行此操作? 可以对列表执行此操作,例如: 我想要对字符串执行此功能。我能想到的唯一方法是将字符串转换为列表,删除字符,然后将其重新连接回字符串。但是然后我将不得不返回结果。例如: 我了解为什么此功能无法使用。问题是是否有可能在Python中执行此操作?如果是这样,是否可以在不复制字符串的情况
我如何通过按一个按钮将变量day传递给apiInterface类? 片段FragJornadas,我想从这里将变量传递给@get in接口? TodaSadapter } 我要获取的url是: “server.php?action=getresultados&cmp=328&jor=1&tmp=2018/2019” 这是一个错误: java.lang.IllegalArgumentExceptio
我正在做一个语言翻译项目,但在中间的某个地方卡住了。 我有这样的情况,有一根绳子 我想得到 即提取带引号的子字符串,去掉“$”并用新的子字符串替换原始子字符串。 我可以提取和更改引用的子字符串,但当我尝试用原始子字符串替换它们时,它不起作用。要显示示例代码: 我不知道为什么替换失败。会感谢你的帮助。
默认情况下 Eclipse 字符集为 GBK,但现在很多项目采用的是 UTF-8,这是我们就需要设置我们的 Eclipse 开发环境字符集为 UTF-8, 设置步骤如下: 在菜单栏选择 Window -> Preferences -> General -> Workspace -> Text file encoding,在 Text file encoding 中点击 Other,选择 UTF-8