java - 如何在 Java 中拆分单词而不是单个字符?

标签 java parsing

我想用单词“data::”而不是单个字符来拆分这个字符串。怎么办?

String bla = "data::01000100010001000100data::0101001010101010101data::11111111111111111";
String result[] = bla.split("\\data::");
/*
 * this outputs the whole string
 * instead of only: 01000100010001000100*/
System.out.println(result[0]); 

注意:

    package test;        
    public class NewClass 
    {    
        public static void main(String[] args) 
        {     
          String bla = "data::0000data::1111data::010101";

          // Try 1 - failed
          String[] parta = bla.split("\\ddata::");
          System.out.println(parta[0]);        
          System.out.println(parta[1]);        
          System.out.println(parta[2]);        

          // Try 2 - failed -- works
          String[] partb = bla.split("data::");
          System.out.println(partb[0]); // consider as empty
          System.out.println(partb[1]); // starts from here
          System.out.println(partb[2]); 

          // Try 3 - failed
          String partc[] = bla.split("\\wdata::");
          System.out.println(partc[0]);        
          System.out.println(partc[1]);        
          System.out.println(partc[2]);                            
        }
    }

失败的输出:

run:
data::000
111
010101

0000
1111

data::000
111
010101

BUILD SUCCESSFUL (total time: 0 seconds)

最佳答案

字符串文字中的

\\d 表示正则表达式中的数字。您需要简单地拆分:

bla.split("data::")

因为ata::后面没有单个数字(模式:"\\data::"),所以返回了整个字符串String.split(...).

关于java - 如何在 Java 中拆分单词而不是单个字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7406302/

相关文章:

shell - 使用 awk 检查两个日期

parsing - 如何通过 Glype PHP 代理更改解析页面中的样式表?

java - 如何设置 JLabel 的边距?

java - 为什么drawString没有出现在JFrame GUI中?

java - 通过 Internet 进行邮件合并

java - 在 javaFX 中通过 KeyCombination 触发事件

objective-c - 在窗口 IB 上显示 NSArray

c++ - 使用 Boost::Spirit 解析时出现段错误

java - 配置jmxremote时无法正常停止tomcat

parsing - FParsec 中的示例语法超出了示例范围?