[英]How do I remove a repeating characted in my string and trim the white spaces within a string in Java?
[英]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.