当前位置: 首页 > 面试题库 >

如何在Java中从输入文本中删除标点符号?

郑晗日
2023-03-14
问题内容

我试图使用Java中用户的输入来获取一个句子,并且我需要使其小写并删除所有标点符号。这是我的代码:

    String[] words = instring.split("\\s+");
    for (int i = 0; i < words.length; i++) {
        words[i] = words[i].toLowerCase();
    }
    String[] wordsout = new String[50];
    Arrays.fill(wordsout,"");
    int e = 0;
    for (int i = 0; i < words.length; i++) {
        if (words[i] != "") {
            wordsout[e] = words[e];
            wordsout[e] = wordsout[e].replaceAll(" ", "");
            e++;
        }
    }
    return wordsout;

我似乎找不到任何方法来删除所有非字母字符。我尝试过使用regexes和迭代器没有任何运气。谢谢你的帮助。


问题答案:

首先删除所有非字母字符,将其折叠为小写字母,然后分割输入,在一行中完成所有工作:

String[] words = instring.replaceAll("[^a-zA-Z ]", "").toLowerCase().split("\\s+");

最初在输入中留有空格,因此拆分仍将起作用。

通过 拆分 之前 删除垃圾字符,可以避免循环遍历元素。



 类似资料:
  • 问题内容: 我有绳子。 如何在离开字符串的同时从字符串中删除? 问题答案: 对于所有要丢弃的事件,请使用: PS:replace函数返回一个新字符串,并使原始字符串保持不变,因此在replace()调用之后使用该函数的返回值。

  • 我有一个字符串。 在保留的同时,如何从字符串中删除?

  • 问题内容: 有人知道一种从SQL Server的字段中删除标点符号的好方法吗? 我在想 但是当我打算删除大量不同的字符时,这似乎有点乏味,例如:!@#$%^&*()<>:“ 提前致谢 问题答案: 理想情况下,您可以使用如上所述的C#+ LINQ之类的应用程序语言来执行此操作。 但是,如果您仅想在T-SQL中执行此操作,一种使事情变得更整洁的方法是首先创建一个表,其中包含要删除的所有标点符号。 接下

  • 问题内容: 我有以下数据,需要将它们全部放在一行中。 我有这个: 我需要这个: 这些命令均无法完美运行。 他们中的大多数让数据像这样: 问题答案: 编辑: 如果此处发布的所有命令均不起作用,则除了换行符以外,您还有其他用途。可能文件中有DOS / Windows行尾(尽管我希望Perl解决方案即使在这种情况下也可以工作)? 尝试: 如果这不起作用,那么您将不得不更仔细地检查文件(例如,在十六进制编

  • 我是javafx新手,正在尝试在textflow中显示大量文本。它显示得很好,但我就是不知道如何删除文本。 所以我要做的是像这样从textFlow中删除所有文本节点 但当我这样做并向textFlow添加一些内容时,它会显示在已经显示的文本之后。我想删除那里的文本,并显示从文本流开始添加的文本。 我想我必须以某种方式重新呈现textflow的视图,但我不知道怎么做。那么如何删除所有内容并重新添加文本

  • 问题内容: 如何以一种在Windows和Linux上都可以使用的方式替换Java字符串中的所有换行符(即,没有特定于操作系统的回车/换行/换行等问题)? 我试过了(注意readFileAsString是一个将文本文件读入String的函数): 但这似乎不起作用。 如何才能做到这一点? 问题答案: 你需要text将结果设置为: 这是必需的,因为字符串是不可变的-调用不会更改原始字符串,它会返回已更改