利用while语句,条件为输入的字符不为'\n'.
题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
1.程序分析:利用while语句,条件为输入的字符不为'\n'.
一个很简单的问题,其实换种方式就能完成,但是我就想怎么着才能在while()判断 输入的字符是否为'\n'。(*^▽^*)
/**
*
*/
package Training; import java.util.Scanner; /**
* @author Administrator
*
*/
public class putIn6 { /**
* @param args
*/
public static void main(String[] args) {
int charnum=0,othnum=0,spacenum=0,dnum=0;
System.out.println("单独输入回车,结束输入:");
@SuppressWarnings("resource")
Scanner scanner=new Scanner(System.in);
String str1=scanner.next();
char str=str1.charAt(0);
// char [] arr =str.toCharArray();
// int length=arr.length;
// int i=0;
while((char str =scanner.next().charAt(0)!='\n')) {
// if(arr[i]=='\n')
// break;
//判断是否是字母
if(Character.isLetter(str))
charnum++;
//判断是否是数字
else if(Character.isDigit(str))
dnum++;
//判断是否是空格
else if(Character.isWhitespace(str))
spacenum++;
//判断是否是其他
else
othnum++;
@SuppressWarnings("resource")
Scanner scanner1=new Scanner(System.in);
String str11=scanner1.next();
char str2=str11.charAt(0);
str=str2;
// if(i<length)
// i++;
}
System.out.println("字母数:"+charnum+" 数字数:"+dnum+" 空格数:"+spacenum+" 其他数:"+othnum);
} }
思考很久后依旧无法解决,在使用while的情况下,实现 以下的效果
2'\n'
3'\n'
w'\n'
'\n'
字母数:1 数字数:2 空格数:0 其他数:0
/**
*
*/
package Training; import java.util.Scanner; /**
* @author Administrator
*
*/
public class putIn6 { /**
* @param args
*/
public static void main(String[] args) {
int charnum=0,othnum=0,spacenum=0,dnum=0;
System.out.println("回车结束输入:");
@SuppressWarnings("resource")
Scanner scanner=new Scanner(System.in);
String str=scanner.next();
// char str=str1.charAt(0);
char [] arr =str.toCharArray();
int length=arr.length;
int i=0;
while(i<length) {
if(arr[i]=='\n')
break;
//判断是否是字母
if(Character.isLetter(arr[i]))
charnum++;
//判断是否是数字
else if(Character.isDigit(arr[i]))
dnum++;
//判断是否是空格
else if(Character.isWhitespace( arr[i]))
spacenum++;
//判断是否是其他
else
othnum++;
// @SuppressWarnings("resource")
// Scanner scanner1=new Scanner(System.in);
// String str11=scanner1.next();
// char str2=str11.charAt(0);
// str=str2;
if(i<length)
i++;
}
System.out.println("字母数:"+charnum+" 数字数:"+dnum+" 空格数:"+spacenum+" 其他数:"+othnum);
} }
只能实现以下效果
回车结束输入:
asdas 2626 asd as
字母数:5 数字数:0 空格数:0 其他数:0
思考加询问过后,得出以下结论

1. java和c的字符串不一样,c中'\n'会是字符串中的最后一部分,而java把'\n'当成一个结束输入的标志,不存在字符串中。
所以我试了很多次后,大部分的错误都是while循环到最后数组下标越界。
不知道那个大神能写出来第一种的效果。
利用while语句,条件为输入的字符不为'\n'.的更多相关文章
- 如何利用while语句根据用户输入要求打印菱形图案
需求:如何利用while语句根据用户输入要求打印菱形图案 diamond.py代码如下: x=int(input('Please input number: ')) i=1 j=1 while i&l ...
- C++入门经典-例3.12-使用if-else语句实现根据输入的字符输出字符串
1:代码如下: // 3.12.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream> usin ...
- python学习:利用循环语句完善输入设置
利用循环语句完善输入设置 使用for循环: 代码1:_user = "alex"_password = "abc123" for i in range(3): ...
- 每日学习心得:CustomValidator验证控件验证用户输入的字符长度、Linq 多字段分组统计、ASP.NET后台弹出confirm对话框,然后点击确定,执行一段代码
2013-9-15 1. CustomValidator验证控件验证用户输入的字符长度 在实际的开发中通常会遇到验证用户输入的字符长度的问题,通常的情况下,可以写一个js的脚本或者函数,在ASP ...
- c/c++,输入一个字符 2014-11-20 07:00 30人阅读 评论(0) 收藏
getch().getche()和getchar()函数 (1) getch()和getche()函数 这两个函数都是从键盘上读入一个字符.其调用格式为: getch(); ...
- 利用switch语句计算特定的年份的月份共有几天。
//利用switch语句计算特定的年份的月份共有几天. let year =2015 let month =2 //先判断闰年中二月份的情况 ifmonth ==2 { if (year %400 = ...
- Java中如何输入一个字符
今天在QQ群上看见有人问如何在Java中输入一个字符的问题. 查了下有以下三种方法吧: char c = new java.util.Scanner(System.in).next().charAt( ...
- c语言int类型的变量输入一个字符出错
今天遇到一个C语言的小问题,就是写一个简单的计算器,定义一个%f%c%f的三个变量,作2+3,2-3这种可以不断输入并输入“OFF”跳出循环的计算器功能,便会出现错误: 错误的示例代码如下: #inc ...
- javascript语句——条件语句、循环语句和跳转语句
× 目录 [1]条件语句 [2]循环语句 [3]跳转语句 前面的话 默认情况下,javascript解释器依照语句的编写顺序依次执行.而javascript中的很多语句可以改变语句的默认执行顺序.本文 ...
随机推荐
- Jquery如何删除table里面checkbox选中的多个行
思路:遍历被选中的checkbox对象→根据选中项筛选出需要删除的行→删除行.实例说明如下: 1.HTML结构 <table id = "test_table"> &l ...
- 关于Serializable的serialVersionUID
在实现了Serializable接口的class中,需要声明一个long serialVersionUID,用来标明当前class的版本号,但很多人在编程时,总是不原意去声明这个serialVersi ...
- 基础数据类型的补充和深浅copy
一:关于str 的操作方法补充 1,s.isspace() 判断字符串是否只由空格组成,是,为True,否则,为False. s = ' ' #只能是以至少一个空格组成的字符串(全空格) prin ...
- Socket与ServerSocket
ServerSocket: 用于打开服务端口,等待客户端连接,运行在服务端. Socket: 用于连接指定服务器的指定端口,运行在客户端. flush是输出到缓冲区,缓冲区没满的话不发送,close的 ...
- Performance Testing 前期准备以及场景设计
性能测试的session参加过几个,也查阅了很多相关的资料.年前被分配了测试任务,一直拖到现在,准备开始做的时候,才发现真的是不知道如何做起啊.今天和同事聊了一下,有很大启发.测试小白一枚,只分享一下 ...
- 自学python Day01
What is Python 1. 面向对象的解释行语言 2. 非常丰富的库 3. 使用制表符作为语句缩进 (white space) 优点: 1. 免费.开源 2. 可扩展性.可嵌入性 3. 非常丰 ...
- wamp版本升级小问题记录
在升级wamp版本时遇到的一些小问题,特此记录 在安装完成之后,修改了Apache根目录,可以正常访问.但是发现 httpd-vhosts.conf追加配置的无法访问,逐步检查,有以下问题 1.Inc ...
- centos7创建新用户
创建新用户 创建一个叫xiaoming的用户: [root@192 ~]# adduser xiaoming 为这个用户初始化密码,linux会判断密码复杂度,不过可以强行忽略: [root@192 ...
- maven系列--maven常用命令
下一篇博客我会讲解用eclipse的m2插件来使用maven,这里先大概的了解下maven常用的命令.之后我在详细整理maven的生命周期,到时候会细致的讲解下这些指令应该要怎么使,maven都帮我们 ...
- 输入和输出--java的NIO
Java的NIO 实际开发中NIO使用到的并不多,我并不是说NIO使用情景不多,是说我自己接触的并不是很多,前面我在博客园和CSDN上转载了2篇别人写的文章,这里来大致总结下Java的NIO,大概了解 ...