首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何删除java中的所有空格

如何删除java中的所有空格
EN

Stack Overflow用户
提问于 2013-03-26 17:16:40
回答 13查看 625.7K关注 0票数 130

我有一个编程任务,其中的一部分需要我编写代码,从用户那里读取一行并删除该行中的所有空格。行可以由一个或多个单词组成。

我试图用这个程序做的是让它分析每个字符,直到找到一个空格,然后将那个子字符串保存为第一个标记。然后再次循环,直到它不再到达令牌或行尾。

当我试图编译它时,我总是得到这样的结果:

Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index   out of range: 1
    at java.lang.String.charAt(String.java:694)
    at trim.main(trim.java:23)

以下是代码

import java.util.Scanner ;
import java.lang.Character;
import java.lang.String ;
public class trim
{
        public static void main (String[]args)
        {

        String a  ;
        String b  ;
        String c ;
        char aChar ;
        int i = 0 ;

        Scanner scan = new Scanner(System.in);

        a = scan.nextLine();
        a =a.trim() ;


         for ( ; i >= 0 ; i++ )
         {
           aChar = a.charAt(i) ;
           if (aChar != 32)
           {
            a = a.substring(0,i+1);
           }
           else
           {
            b = a.substring(i,160) ;
            b= b.trim();
            c = c + a ;
            c = c.trim() ;
            a = b ;
            i = 0 ;
           }
           if (b.equals(null))
           {
            i = -1 ;
           }
         }
        }
}

更容易做到这一点的方法是感激的,但我仍然想让这个程序工作。

而且我不能在输入中使用标记。

感谢大家的帮助,

我将使用更简单的方法,并读取javadoc。

EN

回答 13

Stack Overflow用户

发布于 2013-03-26 17:19:38

java.lang.String类的方法是substring而不是substr,这就是你程序中的错误。

此外,如果您可以使用正则表达式,则可以在一行中完成此操作。

a.replaceAll("\\s+","");
票数 231
EN

Stack Overflow用户

发布于 2016-04-06 15:31:48

无需使用literalsregular expressions即可完成此操作的最直观方法

yourString.replaceAll(" ","");
票数 64
EN

Stack Overflow用户

发布于 2013-03-26 17:19:50

将字符串中的所有空格替换为空字符。

String lineWithoutSpaces = line.replaceAll("\\s+","");
票数 25
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15633228

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档