如何删除字符串中的空格(句子)

时间:2014-03-12 19:20:28

标签: java loops logic substring

我需要删除它的所有空格。

例如:这是我的代码 O / P:Thisismycode

到目前为止,这是我的代码。

import java.util.Scanner;
public class nospace{

public static void main(String args[]){

    Scanner s=new Scanner(System.in);

    System.out.println("Enter a String");
    String N=s.nextLine();
    N=N.trim();
    N=N+" ";
    int l=N.length();
    int a=0;
    for(int i=0;i<=l-1;i++){
        if(N.charAt(i)==32){
    System.out.println(N.substring(a,i+1));
    }
    a=i;

    }

}

}

它只会打印每个单词的最后一个字母。任何帮助表示赞赏。

4 个答案:

答案 0 :(得分:5)

你可以试试我们这段代码

N.replaceAll("\\s+","")

这表示使用空字符串替换字符串对象内的所有空格(&#34;&#34;)。部分"\\s+"称为正则表达式,与replaceAll结合使用可删除所有空格和非可见字符(如制表符)。 另请注意st.replaceAll("\\s","")产生相同的结果。第二个正则表达式比第一个正则表达式快。但是我们增加连续空格的数量,第一个比第二个更好

答案 1 :(得分:2)

我建议使用Java的字符串replaceAll函数。你给它一个你想要替换的正则表达式,以及你要用它替换它的内容:

string.replaceAll("\\s+", "");

所以你的代码应该是这样的:

import java.util.Scanner;
public class nospace{

public static void main(String args[]){

    Scanner s=new Scanner(System.in);

    System.out.println("Enter a String");
    String input=s.nextLine();
    input = input.replaceAll("\\s+", "");
    System.out.println(input);

}

}

我将输入变量从N更改为输入 - 在Java中,您不应该使用大写字母来启动变量的名称。另外,我删除了你的其他一些行,例如在输入字符串的末尾添加一个空格,以及创建l和变量。

答案 2 :(得分:0)

试试这个:

public class RemoveExtraspaces {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        String str="   Hello and welcome !    let's start    coding    ";
        char prev;
        char current;
        String punc="?,.!";
        String result = "";
        for(int i=1;i<str.length();i++){
            current=str.charAt(i);
            prev=str.charAt(i-1);
            if(current==' ' && prev==' ' && punc.indexOf(current)<0){
                prev=current;
            }
            else if(punc.indexOf(current)>0){
                if(prev==' ')
                    result=result.substring(0,result.length()-1);
                    result=result+current;
            }
            else {
                result=result+current;
            }
        }
        System.out.println(result);

    }


}

答案 3 :(得分:0)

如果您想使用Java中的字符串做一些事情, Commons Lang StringUtils是一个值得关注的好地方。

String newString = StringUtils.deleteWhitespace(oldStr);