java - java 分词器(字符串)

标签 java stringtokenizer

例如,我有一些字符串a.b.c.d`,我已用标记分隔它。但现在我想用 a 做一件特定的事情,然后用 b 做其他事情,然后用 c 做其他事情。我怎样才能做到这一点?

String value="a.b.c.d";
StringTokenizer tokenize = new StringTokenizer(value, ".");
while(tokenize.hasMoreTokens()){
    String separated1= tokenize.?????;  
    String separated2= tokenize.?????;                            
    String Val1 = someMethod1(separated1); 
    String Val2 = someMethod2(separated2); 
}
//tokenize next line is not solution 

最佳答案

只是为了阐明@RealSkeptic已经说过的话,避免循环:

    String value = "a.b.c.d";
    String[] separated = value.split("\\.");
    if (separated.length >= 2) {
        String val1 = someMethod1(separated[0]); 
        String val2 = someMethod2(separated[1]); 
    } else {
        // other processing here
    }

如果您愿意,您可以使用 StringTokenizer 执行类似的操作,只是您需要至少两个 if 语句来检查是否有足够的标记。但正如 @user3437460 所说,StringTokenizer 现在已成为遗留问题;在新代码中推荐使用String.split()

关于java - java 分词器(字符串),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42001208/

相关文章:

java - 字符串分词器在第一行后停止

java - 使用 StringTokenizer 将文件读入 Java

java - 为什么 String 将 null 与 + 运算符连接起来并使用 concate() 方法抛出 NullPointerException

C# Tokenizer - 保留分隔符

java - JAXB 将 XML 解码为抽象类型的错误子类

java - Spring MVC表单提交: view to controller pass not put form attribute

java - contains() 匹配两个字符串的问题

java - 用于在文件中查找电子邮件地址/IP 地址的字符串标记生成器/正则表达式

java - 获取列的名称 (PostgreSQL)

Java8 - 显式类型如何匹配一种变体 - 而不是其他类型?