我有一个包含如下数字的字符串:02101403101303101303140
如何迭代字符串以检查字符串中的数字是否为> = 2并记住数字或列表中的数字索引以进行进一步处理?
进一步的处理应该是替换子串。
例如:迭代器找到数字2并记住该字符的索引。 现在它从2开始接受下一个字符并记住这个字符索引。
现在可以替换子串。
让我们说有21个。现在我希望这个变成11个 或者让我们说有60,这应该用000000代替。 第一个数字是"多少"第二个数字是"什么"。
或者有更好的方法以这种方式记住和替换某些子串吗?
提前谢谢。
答案 0 :(得分:0)
你去吧。但记得下次至少尝试
String str = "02101403101303101303140";
StringBuilder sb = new StringBuilder();
for(int i=0; i < str.length(); i+=2)
for(int j =0; j < Integer.parseInt(String.valueOf(str.charAt(i))); j++)
sb.append(str.charAt(i+1));
System.out.print(sb.toString());
答案 1 :(得分:0)
不确定我是否理解你的问题,你可以尝试这样的事情:
String mystring = "02101403101303101303140";
String target = "21";
String replacement = "11"
String newString = mystring.replace(target, replacement);
答案 2 :(得分:0)
String str = "02101403101303101303140";
StringBuilder sb = new StringBuilder();
for (int i = 0; i < str.length(); i++) {
if(Integer.parseInt(String.valueOf(str.charAt(i))) >= 2) {
int temp = Integer.parseInt(String.valueOf(str.charAt(i))) - 1;
for (int j = 0; j < temp ; j++) {
sb.append(str.charAt(i+1));
}
}
else {
sb.append(str.charAt(i));
}
}
System.out.println(sb.toString());
这将产生:01101000011101000111010001110000这是“http”(不带引号)的二进制文件。
谢谢大家!我真正需要的是推动正确的方向,并感谢zubergu。 fr34k也给出了最好的答案!