我有
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.",因此请仔细考虑是否确实如此.