汉字统计
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 38406 Accepted Submission(s):
20944
Problem Description
统计给定文本文件中汉字的个数。
Input
输入文件首先包含一个整数n,表示测试实例的个数,然后是n段文本。
Output
对于每一段文本,输出其中的汉字的个数,每个测试实例的输出占一行。
[Hint:]从汉字机内码的特点考虑~
[Hint:]从汉字机内码的特点考虑~
Sample Input
2
WaHaHa! WaHaHa! 今年过节不说话要说只说普通话WaHaHa! WaHaHa!
马上就要期末考试了Are you ready?
Sample Output
14
9
Author
lcy
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scan =new Scanner(System.in); int n=scan.nextInt(); scan.nextLine(); int count; while(n--!=0){ count=0; String a=scan.nextLine(); byte[] bys = a.getBytes();
/*C / C++ 中,char 类型占 1 个字节,Java 中char 类型占 2 个字节。因为Java 中无论是汉字还是英文字母都是用 Unicode 编码来表示的,一个 Unicode 码是 16 位,每字节是 8 位,所以一个 Unicode 码占两字节。但是英文字母比较特殊,源自于 8 位(1 字节)的 ASCII 码,于是在 Unicode 码仅使用了低 8 位(1 字节)就/
可以表示,高 8 位的话不使用也无所谓。所以,在这里不能使用 char 类型判断汉字机内码,需要使用 byte 类型。*/ int l=bys.length; for(int i=0;i<l;i++){ if(bys[i]<0) count++; } System.out.println(count/2); } } }