Java 从字符串生成器中删除字符
我正在尝试运行一个循环以从字符串中删除一些字符。但是当我运行下面的代码时,我只从第一次运行中获得输出(I on)。我不明白绳子的其余部分。有人能帮我补充一下吗?仅显示第一次迭代的结果。谢谢Java 从字符串生成器中删除字符,java,string,stringbuilder,Java,String,Stringbuilder,我正在尝试运行一个循环以从字符串中删除一些字符。但是当我运行下面的代码时,我只从第一次运行中获得输出(I on)。我不明白绳子的其余部分。有人能帮我补充一下吗?仅显示第一次迭代的结果。谢谢 someStr = "I don't know this"; StringBuilder sb = new StringBuilder(someStr); int n = 3 for (int i = n - 1; i < sb.length(); i = n + 1) { sb = sb.de
someStr = "I don't know this";
StringBuilder sb = new StringBuilder(someStr);
int n = 3
for (int i = n - 1; i < sb.length(); i = n + 1) {
sb = sb.deleteCharAt(i);
}
System.out.println(sb.toString());
someStr=“我不知道这个”;
StringBuilder sb=新的StringBuilder(someStr);
int n=3
对于(int i=n-1;i
for语句的第三部分是增加或减少索引的指令
在那里,它总是4
更清楚地说:
1st iteration : i = 2 => you remove the 'd', your string is now "I on't know this"
2nd iteration : i = 4 => you remove the ''', your string is now "I ont know this"
3rd iteration : i = 4 => you remove the 't', your string is now "I on know this"
4th iteration : i = 4 => you remove the ' ', your string is now "I onknow this"
…为什么不使用String.replaceAll()
如果您想从字符串中删除字符,我建议您使用正则表达式。这是一个用空字符串替换需要删除的字符的示例:
public static String cleanWhitPattern(String sample, String , String regex) {
if (sample != null && regex != null) {
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(sample);
if (matcher.find()) {
return matcher.replaceAll("");
}
return sample;
}
return null;
}
现在,您只需使用所需的模式调用此方法:
System.out.print(cleanWithPattern("I don't know this", "o*"));
您的输出应该是:
我不知道这个
例如,如果要从字符串中删除字符“k”,则可以执行以下操作
爪哇:
科特林:
val someStr: String = "I don't know this"
val sb: StringBuilder = StringBuilder(someStr)
if(sb.toString().contains("k")){
val index: Int = sb.indexOf("k")
sb.deleteCharAt(index)
print(sb.toString())
}else{
print("No such a char")
}
当然,您可以根据所需的输出进行多种组合或改进。什么是
n
?…检查您的增量语句实际执行的操作n可以是任何整数,如2,3,4等。如果您编辑您的帖子以包含输入和预期输出,这将有助于我们解释您的逻辑错误“n可以是任意整数”对任何人都没有用处,它没有阐明您试图实现的目标。您能理解这个问题吗?它在StringBuilder类上,而不是在StringClass上。
String someStr = "I don't know this";
StringBuilder sb = new StringBuilder(someStr);
if(sb.toString().contains("k")){
int index = sb.indexOf("k");
sb.deleteCharAt(index);
System.out.println(sb.toString());
}else{
System.out.println("No such a char");
}
val someStr: String = "I don't know this"
val sb: StringBuilder = StringBuilder(someStr)
if(sb.toString().contains("k")){
val index: Int = sb.indexOf("k")
sb.deleteCharAt(index)
print(sb.toString())
}else{
print("No such a char")
}