[英]splitting the String using StringTokenizer in Java
我最近开始学习Java。 我被困在拆分特定的字符串。 这是字符串:
String head = "(*, grandparent(X,Y))";
我想对字符串进行分割,使其给出两个标记。 这两个标记应为*和grandparent(X,Y)
。 我试图将其拆分
StringTokenizer st=new StringTokenizer(head,",");
System.out.println("The tokens are: " + st.countTokens());
但是如果我用逗号将其分割,则会得到三个令牌。
我不想将它用正则表达式分开。 你们能帮我吗?
如果您始终有2个令牌,则可以指定String.split生成的令牌数量限制
例如: String[] tokens = head.split(",", 2)
请不要在新代码中使用StringTokenizer,不鼓励使用它一段时间,而希望使用更新更好的方法来执行类似的工作。
您可以使用indexOf(',')
找到第一个逗号。
例:
String head="(*, grandparent(X,Y))";
int idx = head.indexOf(',');
String sub1 = head.substring(1, idx);
String sub2 = head.substring(idx + 1, head.length() - 1);
System.out.println("sub1 = " + sub1);
System.out.println("sub2 = " + sub2);
String head="(*, grandparent(X,Y))";
Iterable<String> tokens = Splitter.on(",").limit(2).split(head);
for(String token : tokens){
System.out.println(token);
}
在要添加到pom.xml的maven依赖项下面
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>19.0</version>
</dependency>
嗨,我建议尝试这段代码。 这是一种可行的技巧,具体取决于头字符串的内容。 对于head的共享价值,它将起作用。
head=head.replace("*,","*;");
StringTokenizer st=new StringTokenizer(head,";");
祝好运
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.