在字符串中查找大于或等于 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给出了最佳答案!
我有一个包含如下数字的字符串: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给出了最佳答案!