我需要删除它的所有空格。
例如:这是我的代码 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;
}
}
}
它只会打印每个单词的最后一个字母。任何帮助表示赞赏。
答案 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);