用'.'拆分Java字符串.

The*_*ner 5 java

我有

1. This is a  test message
Run Code Online (Sandbox Code Playgroud)

我想要打印

This is a  test message
Run Code Online (Sandbox Code Playgroud)

我在尝试

String delimiter=".";
String[] parts = line.split(delimiter);
int gg=parts.length;
Run Code Online (Sandbox Code Playgroud)

比要打印数组

 for (int k ;k <gg;K++)
    parts[k];
Run Code Online (Sandbox Code Playgroud)

但我的gg总是0.我错过了什么.我只需要删除数字和.和白色空间

该数字可以是1(或)5位数

ami*_*mit 11

您使用"."作为分隔符,您应该打破.char 的特殊含义.

.正则表达式中的字符是"任何字符",所以你的分裂只是根据"任何字符"分裂,这显然不是你所追求的.

使用"\\."作为分隔符

有关预定义字符类的更多信息,您可以查看本教程.
有关正则表达式的更多信息(包括上述内容),您可以尝试本教程


编辑:
PS您可以使用该String.replaceAll()方法使用单线程实现您的目标(删除数字).

System.out.println(line.replaceAll("[0-9]+\\.\\s+", ""));
Run Code Online (Sandbox Code Playgroud)

将提供输出

This is a  test message
Run Code Online (Sandbox Code Playgroud)

对于您的输入示例.

这个想法是:[0-9]是任何数字.- +表示可以有任意数量的它们,大于0.这\\.是一个点(如上所述断开)并且\\s+至少是一个空格.
全部用空字符串替换.

但请注意,对于以下字符串:"1. this is a 2. test"- 它将提供"这是一个测试",并删除"2.",因此请仔细考虑是否确实如此.