输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
2016-04-10 09:27
471 查看
题目:
输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
程序分析:
利用while语句,条件为输入的字符不为 '\n '.
PS(java):
1、next()一定要读取到有效字符后才可以结束输入,对输入有效字符之前遇到的空格键、Tab、或Enter键等结束符,next()方法会自动将其去掉。只有在输入有效字符之后,next()方法才将其后的输入的空格键、Tab或Enter键等视为分隔符或结束符。
简单地说,next()查找并返回来自此扫描器的下一个完整标记,next方法不能得到带空格的字符串。
2、nextLine()方法的结束符只是Enter键,即nextLine()方法返回的是Enter键之前的所有字符,可以得到带空格的字符串。
3、next() 在和nextLine ()结合使用时特别注意!
next() 在 nextLine ()之前使用时,next 扫描空格或换行之前的字符,并没有读入"\n" , 而nextLine 则要从"\n" 开始读入,有可能读不到数据或者读入“脏数据”。
4、读者可以结合上面的程序,把代码中的nextLine()换为next(),试一下结果。(上面的程序可以接收包含空格的字符串,如果换为next(),输入含空格的字符串后,将不满足题目的要求)
5、读者如果还有疑问,可以参看API或者查阅其他资料。
PS(正则表达式):
输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
程序分析:
利用while语句,条件为输入的字符不为 '\n '.
<span style="font-size:18px;">import java.util.Scanner; public class count { public static void main(String args[]) { System.out.println("请输入字符串:"); Scanner scan = new Scanner(System.in); String str = scan.nextLine(); // 读入能够包含空格的字符串 System.out.println(str); System.out.println(str.length()); String E1 = "[\u4e00-\u9fa5]"; // 匹配中文字符的正则表达式 String E2 = "[a-zA-Z]"; // 匹配字母的正则表达式 int countH = 0; int countE = 0; char[] arrChar = str.toCharArray(); System.out.println(arrChar.length); String[] arrStr = new String[arrChar.length]; for (int i = 0; i < arrChar.length; i++) { // 字符串转换为字符数组 arrStr[i] = String.valueOf(arrChar[i]); } for (String i : arrStr) { if (" ".equals(i)) { continue; } if (i.matches(E1)) { // 匹配汉字,计数 countH++; } if (i.matches(E2)) { // 匹配字母,计数 countE++; } } System.out.println("汉字的个数" + countH); System.out.println("字母的个数" + countE); } }</span><span style="font-size:14px;"> </span>
PS(java):
1、next()一定要读取到有效字符后才可以结束输入,对输入有效字符之前遇到的空格键、Tab、或Enter键等结束符,next()方法会自动将其去掉。只有在输入有效字符之后,next()方法才将其后的输入的空格键、Tab或Enter键等视为分隔符或结束符。
简单地说,next()查找并返回来自此扫描器的下一个完整标记,next方法不能得到带空格的字符串。
2、nextLine()方法的结束符只是Enter键,即nextLine()方法返回的是Enter键之前的所有字符,可以得到带空格的字符串。
3、next() 在和nextLine ()结合使用时特别注意!
next() 在 nextLine ()之前使用时,next 扫描空格或换行之前的字符,并没有读入"\n" , 而nextLine 则要从"\n" 开始读入,有可能读不到数据或者读入“脏数据”。
4、读者可以结合上面的程序,把代码中的nextLine()换为next(),试一下结果。(上面的程序可以接收包含空格的字符串,如果换为next(),输入含空格的字符串后,将不满足题目的要求)
5、读者如果还有疑问,可以参看API或者查阅其他资料。
PS(正则表达式):
<span style="font-size: 18px;">[\u4e00-\u9fa5] : 字符范围,匹配汉字的(简体、繁体)正则表达式。还可以使用"^[/u4E00-/u9FA5]+$"或者</span>
<span style="font-size:18px;"><span style="white-space:pre"> </span> "<span style="color: rgb(54, 46, 43); font-family: Arial; font-size: 14px; line-height: 26px;">^[/u4E00-/u9FFF]+$</span>"两种形式,该正则表达式的字面理解就是至少匹配一个汉字。</span>
<span style="font-size: 18px;"></span><pre name="code" class="java"><span style="font-size: 18px;">[a-zA-Z] : 匹配(大小写)字母。</span>
相关文章推荐
- Educational Codeforces Round 11 C. Hard Process 二分
- shuffle 过程map与reduce交换数据过程的关键
- Android 深入理解Android中的自定义属性
- 斯坦福课程总结一
- LeetCode *** 190. Reverse Bits
- centos7搭建hadoop集群
- 详解如何建立Qt插件学习教程
- win8.1系统不能设置使用小键盘该怎么办?
- Mark
- QT插件开发方式
- 使用Qt编写模块化插件式应用程序
- SpringMVC运行原理
- SpringMVC运行原理
- QT插件机制
- plqsl中创建用户
- oracle自动生成主键不连续
- python 将有序list打乱
- 20145109 《Java实验报告1》
- STM32函数 命名规则
- java容器源码