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'
答案 0 :(得分:1)
只需使用
str = s1.nextLine().replaceAll(" ", "");;
我看到@cricket已经在这个问题的评论中指出了这一点! 他还建议使用这样的正则表达式:
str = str.replaceAll("\\s", ""); // for only one white space
str = str.replaceAll("\\s+", ""); // for multiple white spaces
但要回答原始问题,如何使用字符数组从字符串中删除空格:
在原始示例中,您将每个char元素向右移动,但最后一个元素始终保持不变!因此,如果你想再次得到这个char数组的String,你必须减去它变小的数量(由于删除了空格)!
这是代码(查看倒数第二行(倒数第二行)):
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);
答案 1 :(得分:0)
而不是
String str2 = new String(ch);
DO
String str2 = new String(ch, 0, l);
或全部减少到
String str2 = str.replace(" ", "");