java - 删除java中字符之前和之后的字符

标签 java string

我需要使用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/

相关文章:

C 内核字符串连接和比较

python - 如何在python中将numpy数组成员的值写入txt?

c - 如何使用连接两个动态字符串生成的字符串动态引用数组?

java - 在Java中,如何将自纪元以来的秒数转换为自1970年1月1日以来的毫秒数,00 :00:00 GMT

java编译环境不适用于windows

java - 作为 Windows 服务运行时,Excel 无法读取由 Java 进程编写的文件

php - 对可能包含日期和缩写月份名称的字符串数组进行排序

c - 如何在 C 中创建一个函数,允许我根据分隔符将字符串拆分为数组?

java - Android setContentView 使我的应用程序崩溃

java - 按顺序执行两个 Action