在java中提高从字符串中删除字符的效率
-->如何在以下代码中提高“从字符串中删除字符的效率”:在java中提高从字符串中删除字符的效率,java,string,Java,String,-->如何在以下代码中提高“从字符串中删除字符的效率”: import java.util.Scanner; public class StringPractice { public static void main(String[] args) { Scanner sc=new Scanner(System.in); System.out.println("Enter a String : "); String str; str=sc.nextLine();
import java.util.Scanner;
public class StringPractice {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("Enter a String : ");
String str;
str=sc.nextLine();
System.out.println("Enter char to remove : ");
char ch=sc.nextLine().charAt(0);
char[] a=new char[str.length()];
// System.out.println("Parameters : Char : "+ch+" String : "+str+"\n");
StringPractice ob=new StringPractice();
a=ob.removeChar(str,ch);
String str1=new String(a);
System.out.println("New String is : "+str1);
}
char[] removeChar(String a,char c){
char[] ch=new char[a.length()];
byte count=0;
for(int i=0;i<a.length();i++){
if(a.charAt(i)==c){
count++;
continue;
}
ch[i-count]=a.charAt(i);
}
return ch;
}
}
import java.util.Scanner;
公开课实习{
公共静态void main(字符串[]args){
扫描仪sc=新的扫描仪(System.in);
System.out.println(“输入字符串:”);
字符串str;
str=sc.nextLine();
System.out.println(“输入要删除的字符:”);
char ch=sc.nextLine().charAt(0);
char[]a=新字符[str.length()];
//System.out.println(“参数:Char:+ch+”字符串:+str+”\n”);
StringPractice ob=新StringPractice();
a=ob.removeChar(str,ch);
字符串str1=新字符串(a);
System.out.println(“新字符串为:“+str1”);
}
char[]removeChar(字符串a,字符c){
char[]ch=新字符[a.长度()];
字节计数=0;
对于(inti=0;i,还可以使用可变的StringBuilder类
StringBuilder sb=新的StringBuilder(inputString)
公共类重新投资{
公共静态void main(字符串参数[]){
StringBuilder名称=新StringBuilder(“chandu”);
int i=name.indexOf(“n”);
名称.删除字符(i);
System.out.println(name.toString());
}
据我所知,您正在编写代码,以删除sting中出现的字符,因此只需将其替换为空字符串即可:
只需更改此代码,无需removeChar方法:
StringPractice ob=new StringPractice();
a=ob.removeChar(str,ch);
String str1=new String(a);
索尔:
要替换所有事件,请执行以下操作:
str = str.replaceAll("ch","");
内置字符串函数replaceAll()
删除所有出现的字符串,以及replace()
删除单个字符
string = string.replaceAll("c","");
string = string.replace("c","");
对我来说,它似乎是相当优化的代码。它应该比标准方法更快。这是你程序中的一个热点吗?预热代码,如果你先编译代码,它可以在不改变它的情况下运行50多次。你有一个bug,char[]如果从中删除字符,ch将不会变小。我将首先考虑正确性,其次考虑速度。我将删除char[]a=new char[str.length()]
因为您不使用对象。是的,olsai,我正在寻找其他更好的解决方案该字符可能会出现多次。是的,正是我所想的。我不确定为新字符串中的字符指定的索引。此外,如果字符串中出现多次,我们仍然需要有一个循环。例如,如果我们想重新将“e”从大象身上移开。
string = string.replaceAll("c","");
string = string.replace("c","");