MST
星途 面试题库

面试题:Java中StringTokenizer处理特殊字符分隔字符串时的边界情况分析

在Java中,对于字符串 "#value1#&value2@value3@#",使用StringTokenizer以#、&、@作为分隔符进行分割。请分析在分割过程中,开头和结尾的分隔符以及连续出现的分隔符会对结果产生什么影响,并编写代码验证你的分析。
36.6万 热度难度
编程语言Java

知识考点

AI 面试

面试题答案

一键面试
  1. 分析
    • 开头的分隔符StringTokenizer会忽略开头连续的分隔符,即开头的#会被忽略。
    • 结尾的分隔符StringTokenizer会忽略结尾连续的分隔符,即结尾的#会被忽略。
    • 连续出现的分隔符StringTokenizer会将连续出现的分隔符当作一个分隔符处理。例如,若有两个连续的#,会被当作一个分隔符,而不会将它们之间的空字符串作为一个token。
  2. 代码验证
import java.util.StringTokenizer;

public class StringTokenizerExample {
    public static void main(String[] args) {
        String str = "#value1#&value2@value3@#";
        StringTokenizer st = new StringTokenizer(str, "#&@");
        while (st.hasMoreTokens()) {
            System.out.println(st.nextToken());
        }
    }
}
  1. 代码解释
    • 首先定义了要分割的字符串str
    • 然后使用StringTokenizer,以#&@作为分隔符对字符串进行分割。
    • 最后通过while循环,使用hasMoreTokens()方法判断是否还有token,然后使用nextToken()方法获取并打印每个token。运行这段代码可以看到,开头和结尾的#被忽略,连续的分隔符被当作一个分隔符处理,输出结果为:
value1
value2
value3