StringTokenizer
是 Java 中的一个类,用于将字符串拆分为标记(tokens)。默认情况下,它使用默认的字符集(通常是 ISO-8859-1)来处理字符串。但是,如果你需要处理 Unicode 字符,可以通过以下方法实现:
- 使用
StringTokenizer
的构造函数,将输入字符串转换为Reader
对象,以便正确处理 Unicode 字符。例如:
import java.io.StringReader; import java.util.StringTokenizer; public class Main { public static void main(String[] args) { String input = "你好,世界!"; StringTokenizer tokenizer = new StringTokenizer(input, "", true, new java.io.Reader() { @Override public int read(char[] cbuf, int off, int len) { return input.chars().skip(off) >= len ? input.chars().read(cbuf, 0, len) : -1; } }); while (tokenizer.hasMoreTokens()) { System.out.println(tokenizer.nextToken()); } } }
在这个例子中,我们创建了一个匿名 Reader
类,覆盖了 read
方法,使其能够从输入字符串中读取 Unicode 字符。然后,我们将这个 Reader
对象传递给 StringTokenizer
的构造函数。
- 使用
java.util.Scanner
类,它更适合处理 Unicode 字符。例如:
import java.util.Scanner; public class Main { public static void main(String[] args) { String input = "你好,世界!"; Scanner scanner = new Scanner(input); while (scanner.hasNext()) { System.out.println(scanner.next()); } } }
在这个例子中,我们使用了 Scanner
类来处理 Unicode 字符。Scanner
类会自动处理 Unicode 字符,因此你不需要进行任何特殊处理。