java - Java中将一个字符串拆分为多个字符串

标签 java string split substring

我如何在出现某个字符的几个地方拆分字符串。

例如,这是字符串

“10067829311288”

循环字符串时,如果数字是“1”,则取接下来的两个字符并分割,如果不是,则只取一个。下面是它应该如何分割。

100 67 82 93 112 88

感谢任何帮助。

最佳答案

像这样怎么样:

public static void main(String[] args) {
    final String s = "10067829311288";
    final List<Integer> split = new LinkedList<>();
    int i = 0;
    while (i < s.length()) {
        final char c = s.charAt(i);
        final int remain = s.length() - i;
        final int step;
        if (c == '1') {
            step = Math.min(remain, 3);
        } else {
            step = Math.min(remain, 2);
        }
        split.add(Integer.parseInt(s.substring(i, i + step)));
        i += step;
    }
    System.out.println(split);
}

或者,使用正则表达式:

public static void main(String[] args) {
    final String s = "10067829311288";
    final List<Integer> split = new LinkedList<>();
    final Pattern pattern = Pattern.compile("1?\\d{2}");
    final Matcher matcher = pattern.matcher(s);
    while (matcher.find()) {
        split.add(Integer.parseInt(matcher.group()));
    }
    System.out.println(split);
}

关于java - Java中将一个字符串拆分为多个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16874008/

相关文章:

php - 如何在不打断单词的情况下拆分长字符串?

Ruby 字符串拆分为多个字符

java - 判断一个矩形是否与一条线相接

java - java中如何查找二进制字符串的子字符串

java - Spring LDAP 身份验证不使用管理员/经理帐户

c++ - 在 C++ 中使用 ncurses 读取字符串

javascript - 正则表达式删除html标签和字符

Java:使函数返回正整数而不是负整数

c++ - 为 char[ ] 字段创建 getter 的安全方法

Python Pandas 从宽到长格式更改,列标题拆分