我需要使用java编程删除特定字符之前和之后的所有字符 例如:
输入: ab*cd
输出:广告
输入: ab**cd
输出:广告
import java.util.Scanner;
public class Starstring {
public static void main(String[] args) {
String str1;
String res="";
int n,i=0;
Scanner sc=new Scanner(System.in);
System.out.println("Enter the string");
str1=sc.next();
res=str1;
StringBuffer a = new StringBuffer(str1);
n=str1.length()-1;
for(i=0;i<n;i++)
{
if(str1.charAt(i)=='*')
{
res=a.delete(i-1, i+2).toString();
}
}
System.out.println("The final string is"+res);
}
}
我得到了 case 1
的预期输出,但 case 2
的输出错误,并以 ac 作为输出。我不知道哪里出了问题。请有人帮助我。提前致谢:)
最佳答案
使用正则表达式将多个 *
替换为单个 *
。您的代码将如下所示:
input:ab*cd output:ad
input ab**cd ouput:ad
import java.util.Scanner;
public class Starstring {
public static void main(String[] args) {
String str1;
String res="";
int n,i=0;
Scanner sc=new Scanner(System.in);
System.out.println("Enter the string");
str1=sc.next();
res=str1;
str1 = str1.replaceAll("[*]+", "*");// add this line
StringBuffer a = new StringBuffer(str1);
n=str1.length()-1;
for(i=0;i<n;i++)
{
if(str1.charAt(i)=='*')
{
res=a.delete(i-1, i+2).toString();
}
}
System.out.println("The final string is"+res);
}
}
关于java - 删除java中字符之前和之后的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47343366/