Java.lang.Character类学习
2014-05-25 20:35
190 查看
--------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流!
----------------------
题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
通过上述的问题来学习下Character类。Character将一个char基本数据类型封装在类中。这个类中只有一char类型的变量。Character是基于unicode码进行的Character所有的方法,都是围绕着这个char基本数据类型的值进行操作的。
下面列出的是Character的其他方法,仅提供参考:
--------------------- 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培训、期待与您交流!
----------------------
相关文章推荐
- Java学习(4)-Java.Lang包
- java学习笔记-java.lang.Thread
- Android学习:java.lang.ClassCastException: android.widget.ImageButton异常处理
- [学习原创] java.lang.reflect.Proxy使用
- 关于class$java$lang$Character
- 第一次感受DI & java.lang.reflect.* 学习
- java.lang.ThreadGroup学习笔记
- Java学习总结4---java.lang.ref包探讨
- 异常积累学习之解决 - java.lang.OutOfMemoryError: unable to create new native thread
- java.lang.IllegalArgumentException: Illegal character in query at index xxx:
- java. lang. IllegalArgumentException: Path does not start with a "/" character
- java.lang.Thread学习笔记
- java反射学习笔记一(解析java.lang.String)
- java.lang.IllegalArgumentException: Illegal pattern character 'o'
- java.lang.Class 类学习
- SSh 配置错误学习(一)--java.lang.NoSuchMethodError
- Java学习:Exception in thread"main"java.lang.NoClassDefFoundError
- oracle学习_1 java.lang.Exception: Exception in sending Request :: null
- 【学习Android遇到的错误】Android 开发遇到 java.lang.NoClassDefFoundError 错误
- Caused by: java.lang.IllegalArgumentException: Pointcut is not well-formed: expecting ')' at character position 11