java - 使用换行正则表达式仅拆分字符串整数

标签 java regex string

我有一个字符串并尝试将其解析为字符串数组。该字符串看起来像:

c: 00000
u: 00001
h: 0001
r: 0010
s: 0011
e: 010
i: 0110
n: 0111

上面的示例仅涉及一个字符串引用,例如 String str = testClass.toString(); 我只想将 0 和 1 放入字符串数组中。

String filtered = str.replaceAll("[^0-1]","");
        String[] numbers = filtered.split("\n");
        for (String a : numbers) {
            System.out.println(a);
        }

我编写了上面的代码,但它只给出一行输出。如何解决?

000000000100010010001101001100111

我打算作为

str[0] = "00000";
...
str[7] = "0111"

最佳答案

问题在于,当您调用 str.replaceAll("[^0-1]","") 时,'\n' 也被替换为空字符串。

一种可能的方法是替换除数字之外的所有字符 AND '\n':

String filtered = str.replaceAll("[^01\n]","");
String[] list = filtered.split("\n");  

另一种方法是直接拆分,只保留 "0""1":

String[] list = str.split("[^01]+");

关于java - 使用换行正则表达式仅拆分字符串整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36580603/

相关文章:

javascript - 使用jquery捕获字符之间的字符串

ruby - 如何只匹配某些字符与正则表达式?

php - 一个 PHP 循环问题

java - SHA1 和 RSA 与 java.security.Signature 对比 MessageDigest 和 Cipher

java - 如果我们超出了Java中ByteBuffer.allocate(48) NIO包类中分配缓冲区的容量怎么办

python - 使用正则表达式模式从文本中提取每个片段

我们不能在单个程序中对不同的字符串使用 strtok 吗?

java - 如何将字符串映射到 Java 中的函数?

java - getClass().getResource(resourcePath) 在 Windows 上有效,在 Linux 上为空

java - 如何使用 Selenium Webdriver 在 HTML 的上行查找类名