黑马程序员技术交流社区
标题:
一个问题跪求高手!!!
[打印本页]
作者:
郭锐
时间:
2012-8-17 00:19
标题:
一个问题跪求高手!!!
求一个程序,能实现属于一行字符串之后统计出其中汉字,字母,数字和空格以及其他字符的个数,,完全没有思路,求解答
作者:
王健
时间:
2012-8-17 00:25
package com.itcast;
/**
* ascii码表问题....
*/
import java.util.Scanner;
public class Test2{
public static void main(String[] args){
System.out.print("请输入一串字符:");
Scanner scan = new Scanner(System.in);
String str = scan.nextLine();//将一行字符转化为字符串
scan.close();
count(str);
}
//统计输入的字符数
private static void count(String str){
String E1 = "[\u4e00-\u9fa5]";//汉字
String E2 = "[a-zA-Z]";
String E3 = "[0-9]";
String E4 = "\\s";//空格
int countChinese = 0;
int countLetter = 0;
int countNumber = 0;
int countSpace = 0;
int countOther = 0;
char[] array_Char = str.toCharArray();//将字符串转化为字符数组
String[] array_String = new String[array_Char.length];//汉字只能作为字符串处理
for(int i=0;i<array_Char.length;i++)
array_String[i] = String.valueOf(array_Char[i]);
//遍历字符串数组中的元素
for(String s:array_String){
if(s.matches(E1))
countChinese++;
else if(s.matches(E2))
countLetter++;
else if(s.matches(E3))
countNumber++;
else if(s.matches(E4))
countSpace++;
else
countOther++;
}
System.out.println("输入的汉字个数:"+countChinese);
System.out.println("输入的字母个数:"+countLetter);
System.out.println("输入的数字个数:"+countNumber);
System.out.println("输入的空格个数:"+countSpace);
System.out.println("输入的其它字符个数:"+countSpace);
}
}
作者:
贾成龙
时间:
2012-8-17 00:36
我给你一个小例子 ,你照着这个改就是了!关于中文汉字的要查表了!
给你一个例子,你还是自己做出来这样才可以锻炼自己!
给定一个字符串,统计大写字母,小写字母,数字出现的个数.
public class StringTest {
/**
* @param args
*/
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个字符串(a-z,A-Z,0-9):");
String str = sc.nextLine();
// 调用功能返回一个数组
int[] arr = countChar(str);
int big = arr[0];
int small = arr[1];
int num = arr[2];
System.out.println("big:" + big);
System.out.println("small:" + small);
System.out.println("num:" + num);
}
//如果你想返回多个数据,必须使用引用类型
//如果你返回的是同一类型的多个数据,必须用数组
//如果你返回的不是同一类型的多个数据,可以考虑使用自定义对象。
public static int[] countChar(String str) {
int[] arr = new int[3];
for (int x = 0; x < str.length(); x++) {
char ch = str.charAt(x);
if (ch >= 'A' && ch <= 'Z') {
arr[0]++;
} else if (ch >= 'a' && ch <= 'z') {
arr[1]++;
} else if (ch >= '0' && ch <= '9') {
arr[2]++;
}
}
return arr;
}
}
我这个小程序希望对你有帮助!
判断汉字的小程序是如下:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class test {
public static void main(String[] args) {
int count = 0;
String regEx = "[\\u4e00-\\u9fa5]";
// System.out.println(regEx);
String str = "字符串";
// System.out.println(str);
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher(str);
System.out.print("提取出来的中文有:");
while (m.find()) {
System.out.print(m.group(0)+" ");
}
System.out.println();
System.out.println(p.matches(regEx, str));
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2