java - 如何使用 StringTokenizer 获取字符串中的特定值

标签 java string stringtokenizer

<tag k="addr:street" v="St. Croix gate"/>

public void map(Object key, Text value, Context context
    ) throws IOException, InterruptedException {
        StringTokenizer itr = new StringTokenizer(value.toString());
        while (itr.hasMoreTokens()) {
                    String cb = itr.nextToken();
              if(cb.contains("k=\"addr:street\"")){
                       String roadName = itr.nextToken();

                 while(!roadName.contains("\"/>")) {
                      roadName = roadName + itr.nextToken();

                  }
                  word.set(roadName);
                  context.write(word, one);
            }

        }
    }
}

正如你所看到的,我试图在 v="St. Croix Gate"/> 中获取字符串,但由于 Tokenizer 为每个空格添加了一个新的标记,所以我只得到输出“gate”

最佳答案

这对我有用:

    String element = "<tag k=\"addr:street\" v=\"St. Croix gate\"/>";
    String searchAtt = "v";
    StringTokenizer itr = new StringTokenizer(element);
    while (itr.hasMoreTokens()) {
        // split by '='
        String s = itr.nextToken("=");
        // is splited by '=' so the last word is the attribute name
        if (s.endsWith(searchAtt)) {
            // next token is '=' then comes the value of the attribute
            // split it by \"
            itr.nextToken("\"");
            // next token will be the content
            String content = itr.nextToken();
            System.out.println("Searched attribute: " + content);
        }
    }

关于java - 如何使用 StringTokenizer 获取字符串中的特定值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58218390/

相关文章:

java - 类参数缺少最后的引号

java - 广播接收器未启动服务

java - 如何使用动态 ArrayList 填充 gui JTable?

java - Eclipse 中的 Spring 可视化 - UML 图等 - 开源

java - 如何打印整个字符串池?

string - 修剪所有类型的空格,包括制表符

java - stringtokenizer 返回错误的标记

java - 如何使用 StringTokenizer 将字符串存储到 HashMap 中

java - StringTokenizer 未查看选项卡 ("\t")作为空白 ("\\s+")

java - 交换搜索算法