忽略 java stringtokenizer 中的最后一个定界符

Ignore the last delimeter in java string tokenizer

我有一个这样的字符串 "AddUser_test_NewUserForm_singinprocess"。

通过使用 java 字符串分词器,我想要这样的输出:

添加用户

测试

NewUserForm_singinprocess

分隔符是“_”,我的主要目标是忽略“NewUserForm_singinprocess”中的最后一个“_”作为分隔符。

我该怎么做?

您可以使用 String#split() 轻松实现:

public static void main(String args[]) throws Exception {
    String s = "AddUser_test_NewUserForm_singinprocess";
    System.out.println(Arrays.toString(s.split("_(?=.*_)")));
}

O/P :

[AddUser, test, NewUserForm_singinprocess]
String strWithDelimeter = "Hello_Hi_Good_Morning";

    StringTokenizer strToken = new StringTokenizer(strWithDelimeter, "_");
    int noOfToken = strToken.countTokens();
    int count =1;
    String currentElement = null, lastElement = null,lastElement2 = null;
    while(strToken.hasMoreTokens()) {
        currentElement = strToken.nextToken().toString();
        if(count == noOfToken)
            lastElement = currentElement;
        else if(count == noOfToken-1)
            lastElement2 = currentElement;
        else 
            System.out.println(currentElement);
        count++;
    }
    System.out.println(lastElement2+"_"+lastElement);