【问题标题】:Remove a space character in string删除字符串中的空格字符
【发布时间】:2012-09-18 19:00:24
【问题描述】:

我正在读取文本文件中的每一行,对文件执行一些操作并使用 Java 写回同一个文件。而且,行中每个值的位置(索引)很重要。所以我需要保留每个值的位置。

如何删除特定位置(索引)的“空格”字符?

说,下面是我读到的那一行,

.... ABC   123....  --There are 3 spaces between ABC and 123

基本上,我想让上面的行写成 ABC 和 123 之间的 2 个空格。

起初,我只是使用字符串的 replaceAll ,但这只是将值向右移动一个,仍然是 3 个空格。所以,我认为我需要的不仅仅是replaceAll。

现在,我得到了找到 ABC 的位置,并试图删除那 1 个空格。

【问题讨论】:

  • str.replace("ABC 123", "ABC 123"); 或者如果你知道空间的位置new StringBuilder(str).deleteCharAt(pos).toString()
  • 您是否使用\s 来表示搜索模式中的空格?

标签: java


【解决方案1】:

如果要删除单个字符,只需使用StringBuilder.deleteCharAt

final int pos = ...;
str = new StringBuilder(str).deleteCharAt(pos).toString();

我明确建议您不要使用substring 方法。

【讨论】:

    【解决方案2】:

    你不能搜索整个字符串吗?第一个参数有三个空格,第二个参数有两个空格

    replaceAll("ABC   123", "ABC  123");
    

    或者如果 ABC 是您的关键输入

    replaceAll("ABC   ", "ABC  ");
    

    第一个参数有3个空格,后两个在ABC之后

    【讨论】:

      【解决方案3】:

      由于您知道要删除的字符串 s 的位置 n(从零开始):

      s = s.substring(0, n) + s.substring(n + 1);
      

      【讨论】:

        【解决方案4】:

        您可以将字符串转换为 char 数组并循环它,但这不是一个好方法。

        或者你可以这样做:

        myString = myString.substring(0,(position of first space))+
                        myString.substring((position of first space)+1, myString.length);
        

        或者类似的东西

        【讨论】:

          猜你喜欢
          • 2011-09-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-11-20
          相关资源
          最近更新 更多