java - 使用字符数组删除字符串中的空格

标签 java

public class RemoveSpaceFromString {

    public static void main(String args[])
    {
        Scanner s1=new Scanner(System.in);
        String str="";
        System.out.println("enter the string");
        str=s1.nextLine();
        int l=str.length();
        char ch[]=str.toCharArray();

        for(int i=0;i<l;i++)
        {
            if(ch[i]==' ')
            {
                for(int k=i;k<l-1;k++)
                {
                    ch[k]=ch[k+1];
                }
                l--;
                i--;
            }
        }
        String str2=new String(ch);
        System.out.println(str2);
    }
}

ouptput :

enter the string
my name is abc
mynameisabcccc

如何删除末尾多余的“c”

最佳答案

只需使用

str = s1.nextLine().replaceAll(" ", "");;

我看到@cricket 已经在这个问题的评论中指出了这一点! 他还建议使用这样的正则表达式:

str = str.replaceAll("\\s", "");   // for only one white space
str = str.replaceAll("\\s+", "");  // for multiple white spaces

但是要回答您最初的问题如何使用字符数组从字符串中删除空格:

在您最初的示例中,您将每个字符元素向右移动,但最后一个元素始终保持不变!因此,如果您想再次获取此字符数组的字符串,则必须将长度减少它变小的数字(由于删除了空格)!

这是代码(查看倒数第二行(倒数第二行)):

    Scanner s1=new Scanner(System.in);

    System.out.println("enter the string");
    String str=s1.nextLine();
    int l=str.length();

    char ch[]=str.toCharArray();


    for(int i=0;i<l;i++)
    {
        if(ch[i]==' ')
        {
            for(int k=i;k<l-1;k++)
            {
                ch[k]=ch[k+1];
            }
            l--;
            i--;
        }
    }
    String str2=new String(ch,0,l);
    System.out.println(str2);

关于java - 使用字符数组删除字符串中的空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49112718/

相关文章:

java - 用于单元测试的 Mock dao

java - 如何计算App Engine SDK本地测试环境中Datastore读/写的总数?

java - Gridbag布局还是Grid布局?

java - 如何在 Jersey 2.x 中返回对象

java - 使用 Builder 模式为客户端库注入(inject) Guice

java - 如何将 GCJ 与 Ant 一起使用?

java - 当我在 edittext 上不输入任何内容时应用程序崩溃

java - 运行应用程序后,Xml 文件不包含任何数据

java - 同时显示两个 fragment

java - 使用正则表达式提取匹配的字符串