目前,我正在进行一个需要在字符串中删除指定位置字符的项目。有没有简单的方法可以做到这一点?
deleteCharAt()
方法。然后,您只需使用stringBuilder.toString()
来获取您的字符串。public static void main(String[] args) {
String string = "bla*h";
StringBuilder sb = new StringBuilder(string);
sb.deleteCharAt(3);
// Prints out "blah"
System.out.println(sb.toString());
}
字符串是不可变的!但为了完成你的任务,你可以:
例如,假设你要删除第三个字符:
String input = "Hello, World";
String first = input.substring(0, 3);
String second = input.substring(4);
String result = first + second;
StringBuilder
,它有方便的 deleteCharAt
方法。String strWithoutChar = new StringBuilder(yourString).deleteCharAt(yourIndex).toString();
但请记住,使用这种方法可以帮助你减少一些样板代码,但相比使用String#substring
方法会更占用内存。
String newString = oldString.substring(0, index) + oldString.substring(index+1);
请记住,如果您需要多次执行此操作,不断创建新字符串是相当低效的。
String removeCharAt(String s, int index) {
return s.substring(0, index).concat(s.substring(index + 1));
}
public static void fn1()
{
String a = "Stack Overflow";
char[] b = a.toCharArray();
j // index position of the character that you want to delete
for(int i=j;i<b.length-1;i++)
{
b[i]=b[i+1];
}
b[b.length-1]='\000'; // '\000' is the null character
System.out.println(new String(b));
}
String#charAt
。 - Paul Samsotha