有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java StringTokenizer不工作

我有一根绳子

str=123|apple|apple|apple|dog$

我喜欢用“|”字符分隔字符串

    String str = "123|apple|apple|apple|dog$";
    StringTokenizer strString = new StringTokenizer(str..nextToken(), "|");
    int i;
    while (strString.hasMoreElements()) {
        if (i == 0)
            str1 = Loginstring.nextToken();
        else if (i == 1)
            str2 = Integer.Loginstring.nextToken();
        else if (i == 2) {
            str3 = Loginstring.nextToken();
            break;
        }
        i = i + 1;
    }

但它在第一个循环中退出(这意味着如果i大于1,它将退出循环),真的我不知道它发生了什么,它有什么问题


共 (2) 个答案

  1. # 1 楼答案

    使用String.split("\\|")拆分字符串

  2. # 2 楼答案

    这就是你想要达到的目标

    String str1 = "", str2 = "", str3 = "", str4 = "", str5 = "";
    String str = "123|apple|apple|apple|dog$";
    StringTokenizer strString = new StringTokenizer(str, "|");
    int k = 0;
    while (strString.hasMoreElements()) {
        if (k == 0)
            str1 = strString.nextToken();
        else if (k == 1)
            str2 = strString.nextToken();
        else if (k == 2) {
            str3 = strString.nextToken();
        } else if (k == 3) {
            str4 = strString.nextToken();
        } else if (k == 4) {
            str5 = strString.nextToken();
            break;
        }
        k = k + 1;
    }
    System.out.println(str1);
    System.out.println(str2);
    System.out.println(str3);
    System.out.println(str4);
    System.out.println(str5);
    

    但这可以很容易地通过

    String[] tokens = str.split("\\|"); // this is that single statment
    for (String token : tokens)
        System.out.println(token);
    
    str1 = tokens[0];
    str2 = tokens[1];
    str3 = tokens[2];
    str4 = tokens[3];
    str5 = tokens[4];
    
    System.out.println(str1);
    System.out.println(str2);
    System.out.println(str3);
    System.out.println(str4);
    System.out.println(str5);