Java 字符串标记

标签 java regex

我已阅读String.split Javadoc,我还阅读了 How to split a string in Java

我正在尝试这段代码,我的分隔符是

!,?._'@

但是,事实并非如此split 。我的代码有什么问题吗?

import java.io.*;
import java.util.*;

public class Solution {
  public static void main(String[] args) 
  { 
    String[] tokens = "He is a very very good boy, isn't he?".split(" !,\\?\\._'@");
    for (String token : tokens){
      System.out.println(token);
    }
  }
}

输出应该是

He
is
a
very
very
good
boy
isn
t
he

但相反,我得到了

He is a very very good boy, isn't he?

最佳答案

您需要将正则表达式分隔符分成字符类分组(| 符号表示,而+ 表示一个或更多的)。比如,

String[] tokens = "He is a very very good boy, isn't he?"
        .split("[ |!|,|\\?|\\.|_|'|@|]+");
for (String token : tokens) {
    System.out.println(token);
}

输出(根据要求)

He
is
a
very
very
good
boy
isn
t
he

关于Java 字符串标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35966705/

相关文章:

java - 使用 "new"创建的 java 对象和不使用 "new"的对象有什么区别

java - LiquidFun 渲染粒子

javascript - 正则表达式查找模式,返回子模式

java - java中的正则表达式解析字符串

密码的 Java 正则表达式

java - Java中的扫描仪可以读取pdf文件吗?使用流读取

java - 转储 "real-world"场景以进行单元测试

regex - hh :mm:ss format in TextFormField or TextField without using pickers 中的 Flutter 输入时间

regex - 向数字添加逗号时需要环视解释

java - 锁定java中的特定方法