繁体   English   中英

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

[英]How do I remove spaces in a String (sentence)

我需要从中删除所有空格。

例如:这是我的代码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;

    }

}

}

它所做的全部都会打印每个单词的最后一个字母。 任何帮助表示赞赏。

您可以尝试给我们这段代码

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

这说明您用空字符串(“”)替换了字符串对象内的所有空格。 "\\\\s+"部分称为正则表达式,与replaceAll结合使用可删除所有空格和不可见的字符(例如tab)。 另请注意, st.replaceAll("\\\\s","")产生相同的结果。 第二个正则表达式比第一个快。 但是我们增加了连续空格的数量,第一个比第二个要好

我建议使用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更改为input-在Java中,您不应使用大写字母开头变量的名称。 此外,我还删除了其他一些行,例如在输入字符串的末尾添加一个空格,并创建l和一个变量。

尝试这个:

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);

    }


}

如果您想使用Java中的Strings做某事, Commons Lang StringUtils是一个不错的选择。

String newString = StringUtils.deleteWhitespace(oldStr);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM