MST

星途 面试题库

面试题:Java中StringTokenizer复杂场景下的字符串分割

假设有一个字符串,格式为"user1:password1;user2:password2;user3:password3",请使用StringTokenizer先按照分号分割,再对每个子串按照冒号分割,将用户名和密码分别存储到两个不同的数组中,并编写代码实现。说明实现思路并给出完整Java代码。
28.2万 热度难度
编程语言Java

知识考点

AI 面试

面试题答案

一键面试

实现思路

  1. 使用StringTokenizer以分号;为分隔符对给定字符串进行第一次分割,得到包含user:password格式子串的集合。
  2. 对于每个子串,再使用StringTokenizer以冒号:为分隔符进行第二次分割,分别提取用户名和密码。
  3. 将提取的用户名和密码分别存储到两个不同的数组中。

完整Java代码

import java.util.StringTokenizer;

public class SplitString {
    public static void main(String[] args) {
        String input = "user1:password1;user2:password2;user3:password3";
        StringTokenizer outerTokenizer = new StringTokenizer(input, ";");
        int count = outerTokenizer.countTokens();
        String[] usernames = new String[count];
        String[] passwords = new String[count];

        for (int i = 0; outerTokenizer.hasMoreTokens(); i++) {
            String pair = outerTokenizer.nextToken();
            StringTokenizer innerTokenizer = new StringTokenizer(pair, ":");
            usernames[i] = innerTokenizer.nextToken();
            passwords[i] = innerTokenizer.nextToken();
        }

        // 输出验证
        for (int i = 0; i < usernames.length; i++) {
            System.out.println("Username: " + usernames[i] + ", Password: " + passwords[i]);
        }
    }
}