Java怎么用键盘敲入汉字
时间: 2023-05-27 14:05:17 浏览: 152
在Java中,可以使用Scanner类来读取从键盘输入的字符串,包括汉字。以下是一个简单的示例代码:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入汉字:");
String input = scanner.nextLine();
System.out.println("您输入的汉字是:" + input);
}
}
```
在这个例子中,使用Scanner类的nextLine()方法读取从键盘输入的一行字符串,包括汉字。然后将输入的字符串输出到控制台。
相关问题
java 键盘录入中文
在 Java 中进行键盘录入中文的操作,可以使用 `Scanner` 类来实现。但是需要注意的是,默认情况下 `Scanner` 类的输入流是基于字节流的,而不是字符流,所以需要进行字符编码的转换。
以下是一个示例代码,演示如何在 Java 中进行键盘录入中文:
```java
import java.util.Scanner;
import java.io.UnsupportedEncodingException;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入中文:");
String input = scanner.nextLine();
try {
// 将输入的字符串按照 UTF-8 编码转换为字节数组
byte[] bytes = input.getBytes("UTF-8");
// 将字节数组按照 UTF-8 编码转换为字符串
String result = new String(bytes, "UTF-8");
System.out.println("输入的中文为:" + result);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
}
```
运行以上代码后,程序会提示你输入中文,然后将输入的中文字符串进行编码转换,并打印出来。
希望对你有帮助!如果有任何问题,请随时提问。
用Java从键盘上输入一段中文组成的字符串,统计其中汉字个数。用三种方法
好的,下面是三种不同的方法来统计中文字符串中的汉字数量。
## 方法1:通过正则表达式匹配汉字
```java
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入中文字符串:");
String input = scanner.nextLine();
// 使用正则表达式匹配汉字
Pattern pattern = Pattern.compile("[\u4e00-\u9fa5]");
Matcher matcher = pattern.matcher(input);
// 统计汉字数量
int count = 0;
while (matcher.find()) {
count++;
}
System.out.println("汉字数量:" + count);
}
}
```
## 方法2:通过遍历字符串判断每个字符是否为汉字
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入中文字符串:");
String input = scanner.nextLine();
// 遍历字符串,判断每个字符是否为汉字
int count = 0;
for (int i = 0; i < input.length(); i++) {
char c = input.charAt(i);
if (isChinese(c)) {
count++;
}
}
System.out.println("汉字数量:" + count);
}
public static boolean isChinese(char c) {
Character.UnicodeBlock ub = Character.UnicodeBlock.of(c);
return ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS
|| ub == Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS
|| ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A
|| ub == Character.UnicodeBlock.GENERAL_PUNCTUATION
|| ub == Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION
|| ub == Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS;
}
}
```
## 方法3:通过将字符串转化为字符数组,判断每个字符是否为汉字
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入中文字符串:");
String input = scanner.nextLine();
// 将字符串转化为字符数组,判断每个字符是否为汉字
int count = 0;
for (char c : input.toCharArray()) {
if (isChinese(c)) {
count++;
}
}
System.out.println("汉字数量:" + count);
}
public static boolean isChinese(char c) {
Character.UnicodeBlock ub = Character.UnicodeBlock.of(c);
return ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS
|| ub == Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS
|| ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A
|| ub == Character.UnicodeBlock.GENERAL_PUNCTUATION
|| ub == Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION
|| ub == Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS;
}
}
```
以上三种方法都可以用来统计中文字符串的汉字数量,您可以根据自己的需求选择其中一种。
阅读全文