您的位置:首页 > 编程语言 > Java开发

Java.lang.Character类学习

2014-05-25 20:35 190 查看
--------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流!
----------------------

题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

通过上述的问题来学习下Character类。Character将一个char基本数据类型封装在类中。这个类中只有一char类型的变量。Character是基于unicode码进行的Character所有的方法,都是围绕着这个char基本数据类型的值进行操作的。

package com.itheima;

import java.io.BufferedReader;
import java.io.InputStreamReader;

public class CharacterDemo {
// 题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
@SuppressWarnings("unused")
public static void main(String[] args) throws Exception {
int letterSum = 0;
int blankSum = 0;
int numberSum = 0;
int otherSum = 0;
BufferedReader bufr = new BufferedReader(new InputStreamReader(
System.in));
String line = bufr.readLine();
char[] ch = line.toCharArray();//String的方法,讲输入的字符串转换成字符数组
TotalChar(ch, otherSum, otherSum, otherSum, otherSum);
}

public static void TotalChar(char[] ch, int letterSum, int blankSum,
int numberSum, int otherSum) {
// 遍历字符数组
for (int i = 0; i < ch.length; i++) {
if (Character.isDigit(ch[i])) {
numberSum++;
} else if (Character.isSpaceChar(ch[i])) {
blankSum++;
} else if (Character.isLetter(ch[i])) {
letterSum++;
} else {
otherSum++;
}
}
System.out.println("输入的字符串中共有空格:" + blankSum);
System.out.println("输入的字符串中共有字母:" + letterSum);
System.out.println("输入的字符串中共有其他字符:" + otherSum);
System.out.println("输入的字符串中共有数字:" + numberSum);
}
}


下面列出的是Character的其他方法,仅提供参考:

// Character类将一个char基本数据类型封装在类中。这个类中只有一char类型的变量。Character是基于unicode码进行的
// Character所有的方法,都是围绕着这个char基本数据类型的值进行操作的。
Character c = new Character('我');
char cc = 'a';
// 将一个char基本数据类型的数据封装成一个Character类型的对象
System.out.println(Character.valueOf('a'));

// 返回封装在Character类中的char基本数据类型的变量的值。也可理解为将Character对象转化成一个char基本数据类型的值
System.out.println(c.charValue());

// 获取Character类中封装的char基本数据类型变量的hash码值。也可理解为获得Character对象的hash码值,从源码看就是返回强制转换为int类型后的值。
System.out.println("hashcode:" + c.hashCode());

// 判断参数中的字符是否为为候补码,也就是说字符转化为数字后是否大于等于65535,如果参数直接为数字,那就看数字是否大于等于65535,是的话返回2,否则返回1
// 字符在计算机中都是用数字表示的,一个char类型占16位二进制,转成十进制后可以表示65536种字符,也就是说每个字符都可以用一个数字表示,当这数字大于65535说明
// 这个字符为扩充候补字符。
System.out.println(Character.charCount('我'));

// 比较类型和值是否都相同
System.out.println(c.equals(123));
System.out.println(Character.codePointAt("意大利", 2));
char[] c1 = { 'a', 'b', 'c' };
System.out.println(Character.codePointAt(c1, 1));
// 获取指定位置字符的代码点。第二个参数的值一定要小于第三个参数,否则异常
System.out.println(Character.codePointAt(c1, 0, 1));
// 将一个代码点转化为字符
System.out.println(Character.toChars(21033));

System.out.println(Character.offsetByCodePoints("abc", 1, 1));
// 判断是否为小写字母
System.out.println("isLowerCase: " + Character.isLowerCase('a'));
// 通过codepoint来判断是否为小写字母
System.out.println("isLowerCase: " + Character.isLowerCase(65));
// 判断是否为低位代理
System.out.println(Character.isLowSurrogate('a'));
// 判断是否为大写字母
System.out.println("isUpperCase: " + Character.isUpperCase('A'));
// 通过codepoint来判断是否为大写字母
System.out.println("isUpperCase: " + Character.isUpperCase(97));
// 判断字符是否为数字
System.out.println(Character.isDigit('\u0030'));
// 通过codepoint来判断是否为数字
System.out.println(Character.isDigit(123));

// 判断字符有没有对应的unicode形式,就是通过unicode中是否定义了字符的unicode写法
System.out.println("isDefined: " + Character.isDefined('!'));
System.out.println(Character.isDefined(123));
// 判断字符或者codepoint是否为字母
System.out.println("isLetter: " + Character.isLetter('a'));
System.out.println("isLetter: " + Character.isLetter(65));
// 判断是否为字母(26个字符)或者数字
System.out.print(Character.isLetterOrDigit('j'));
System.out.print(Character.isLetterOrDigit(1234));
// 是否为合法java变量名要求的能用于开头的字符(数字,字母下划线和$)
System.out.println("isJavaLetter:" + Character.isJavaLetter('_'));
// 功能同上,用于代替isJavaLetter方法
System.out.println("isJavaIdentifierStart: "
+ Character.isJavaIdentifierStart('@'));
System.out.println("isJavaIdentifierStart: "
+ Character.isJavaIdentifierStart(123));

// 判断是否为一个合法的java变量所包含的字符
System.out.println("isJavaIdentifierPart: "
+ Character.isJavaIdentifierPart('$'));

// java7中的方法。判断字符是否为形意字。比如中国字,日本字
// System.out.println(Character.isIdeographic('我'));
// 小写字母或者用小写字母的codepoint转大写
System.out.println("toLowerCase:" + Character.toLowerCase('A'));
System.out.println("toLowerCase:" + Character.toLowerCase(65));

// 大写字母或者用大写字母的codepoint转小写
System.out.println("toLowerCase:" + Character.toUpperCase('a'));
System.out.println("toLowerCase:" + Character.toUpperCase(97));


--------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流!
----------------------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: