在字符串中查找大于或等于 2 的数字字符

Find char in string that is a digit and larger or equal to 2

我有一个包含如下数字的字符串:02101403101303101303140

如何迭代字符串以检查字符串中的数字是否 >= 2 并记住该数字在数组或列表中的索引以供进一步处理?

进一步的处理应该是替换子字符串。

例如:迭代器找到数字 2 并记住这个字符的索引。 现在它从 2 中取出下一个字符并记住这个字符索引。

现在可以替换子字符串了。

假设有 21。现在我希望它变成 11 或者假设有 60,这应该替换为 000000。 第一个数字是 "how many" 的指标,第二个数字是 "what".

或者有更好的方法来记住和替换某些子字符串吗?

提前致谢。

给你。但记得下次至少试试

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());

不确定我是否理解你的问题,你可以试试这样:

String mystring = "02101403101303101303140";
String target = "21";
String replacement = "11"
String newString = mystring.replace(target, replacement);
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给出了最佳答案!