java使用scanner输入中文数组
时间: 2024-11-30 17:17:57 浏览: 19
在Java中,如果你想通过`Scanner`类从用户那里获取中文数组,需要先了解一点,`Scanner`默认处理的是文本流,对于非ASCII字符(如中文字符),它并不直接支持。不过,你可以借助一些库,如`java.nio.charset`包中的字符集编码来实现。以下是一个简单的示例,展示如何通过`Scanner`读取字符串,并后续转换成中文字符数组:
```java
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入中文数组,用英文逗号分隔:");
String input = scanner.nextLine(); // 获取用户输入
try {
String[] chineseStrings = input.split(","); // 使用逗号作为分隔符
char[][] chineseArray = new char[chineseStrings.length][];
for (int i = 0; i < chineseStrings.length; i++) {
String chineseString = chineseStrings[i];
byte[] encodedBytes = chineseString.getBytes(StandardCharsets.UTF_8); // 转换为UTF-8字节数组
char[] decodedChars = new char[encodedBytes.length]; // 创建字符数组
for (int j = 0; j < encodedBytes.length; j++) {
decodedChars[j] = (char) encodedBytes[j]; // 将字节解码为字符
}
chineseArray[i] = decodedChars;
}
// Now you have the Chinese array of characters
// 可以打印或进一步操作这个数组
for (char[] chars : chineseArray) {
for (char c : chars) {
System.out.print(c + " ");
}
System.out.println();
}
} catch (IOException e) {
e.printStackTrace();
} finally {
scanner.close();
}
}
}
```
阅读全文