【问题标题】:Write the code to process the list of words and trim any spaces out of the words编写代码来处理单词列表并修剪单词中的任何空格
【发布时间】:2020-10-22 21:12:27
【问题描述】:

这段代码应该检查一个字符串数组,看看单词之间是否有空格。这是一个例子:{“every”、“near ing”、“checking”、“food”、“stand”、“value”}。应该改为hold:{“every”, “nearing”, “checking”, “food”, “stand”, “value”}。到目前为止,这是我的代码:

package space;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class spacefinder {
   public static void main (String[] args) {
      String[] arr = {"every", "near ing", "checking", "food", "stand", "value"};
      Pattern pattern = Pattern.compile("\\arr");
      Matcher matcher = pattern.matcher(arr);
      boolean found = matcher.find();
   }
}   

此代码导致错误,我看到的每个教程都没有使用字符串数组,例如我的 String[] Arr,它们只使用常规 String = 语句。

【问题讨论】:

  • 您好,这个任务有哪些部分不清楚?您是否尝试过任何方法来完成此任务?您遇到了哪些具体问题?

标签: java arrays string


【解决方案1】:

你可以试试这样的:

for(int i = 0; i<arr.length; i++) {
    arr[i] = arr[i].replace(" ", "");
}

【讨论】:

  • Slava Vedenin - 请注意 String#replaceAll 将正则表达式作为第一个参数,因此您可以使用 a.replaceAll("\\s+", "") 删除所有空格。但是,我建议您使用a.replace(" ", ""),它能够将所有出现的" " 替换为""
  • (1) 如果您已经在使用索引,则没有理由涉及增强的 for 循环。像for(int i = 0; i&lt;arr.lenght; i++){ arr[i] = ... } 这样的简单代码就足够了。 (2) 更安全的选项是replace,而不是replaceAll。这两种方法都将替换所有指定的字符串,但replaceAll 支持正则表达式,这意味着如果 OP 想要替换 + 之类的东西,他将无法(轻松地)做到这一点。 replace 将其参数视为文字。
  • .replace(' ', ''); 不会编译,因为在 Java 中没有像 '' 这样的 empty charliteral。有像"" 这样的空字符串。将您的编辑回滚到没有遇到该问题的先前版本。希望你不要介意。
【解决方案2】:

也许这会起作用

   public static String[] removeSpace(String[] ans) {
        for(String s:ans){
            while(s.contains(" ")){
                s = s.split(" ")[0] + s.split(" ")[1];
            }
        }
        return ans;
    }

【讨论】:

  • 您不更改数组元素 - 由于字符串是不可变的,您只需更改局部变量而不将结果保存到数组
  • 这不会修改数组中的元素。此外,如果字符串包含多个空格,它将删除其后的所有内容(因为您仅重用拆分的第一部分和第二部分)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-12-31
  • 1970-01-01
  • 2011-12-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多