题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。 
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'.的更多相关文章

  1. 如何利用while语句根据用户输入要求打印菱形图案

    需求:如何利用while语句根据用户输入要求打印菱形图案 diamond.py代码如下: x=int(input('Please input number: ')) i=1 j=1 while i&l ...

  2. C++入门经典-例3.12-使用if-else语句实现根据输入的字符输出字符串

    1:代码如下: // 3.12.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream> usin ...

  3. python学习:利用循环语句完善输入设置

    利用循环语句完善输入设置 使用for循环: 代码1:_user = "alex"_password = "abc123" for i in range(3): ...

  4. 每日学习心得:CustomValidator验证控件验证用户输入的字符长度、Linq 多字段分组统计、ASP.NET后台弹出confirm对话框,然后点击确定,执行一段代码

    2013-9-15 1.    CustomValidator验证控件验证用户输入的字符长度 在实际的开发中通常会遇到验证用户输入的字符长度的问题,通常的情况下,可以写一个js的脚本或者函数,在ASP ...

  5. c/c++,输入一个字符 2014-11-20 07:00 30人阅读 评论(0) 收藏

    getch().getche()和getchar()函数     (1) getch()和getche()函数     这两个函数都是从键盘上读入一个字符.其调用格式为:      getch(); ...

  6. 利用switch语句计算特定的年份的月份共有几天。

    //利用switch语句计算特定的年份的月份共有几天. let year =2015 let month =2 //先判断闰年中二月份的情况 ifmonth ==2 { if (year %400 = ...

  7. Java中如何输入一个字符

    今天在QQ群上看见有人问如何在Java中输入一个字符的问题. 查了下有以下三种方法吧: char c = new java.util.Scanner(System.in).next().charAt( ...

  8. c语言int类型的变量输入一个字符出错

    今天遇到一个C语言的小问题,就是写一个简单的计算器,定义一个%f%c%f的三个变量,作2+3,2-3这种可以不断输入并输入“OFF”跳出循环的计算器功能,便会出现错误: 错误的示例代码如下: #inc ...

  9. javascript语句——条件语句、循环语句和跳转语句

    × 目录 [1]条件语句 [2]循环语句 [3]跳转语句 前面的话 默认情况下,javascript解释器依照语句的编写顺序依次执行.而javascript中的很多语句可以改变语句的默认执行顺序.本文 ...

随机推荐

  1. xtrabackup全量备份和增(差)量备份

    xtrabackup全量备份和增(差)量备份 1.xtrabackup全量备份和恢复 1)备份: innobackupex --default-file=/PATH/TO/DEFAULT --host ...

  2. 关于jwplayer 处理进度条禁止快进的处理方法。

    今天在处理一个关于jwplayer  第一次播放禁止快进,但是可以后退的一个需求.开始在网上去查一些方法,有几个方法是换皮肤,禁止点击,但是和我的初衷不是很一致,还有一种方式是官网查看了API接口的方 ...

  3. 2017-07-01(ifconfig ifdown ifup netstat )

    ifconfig 可以查看IP地址与子网掩码 ifdown(禁用网卡) ifdown  网络设备名 ifdown eth0 ifup (启动网卡) ifup  网络设备名 ifup  eth0 net ...

  4. 查看 Apache并发请求数及其TCP连接状态【转】

    查看 Apache并发请求数及其TCP连接状态 (2011-06-27 15:08:36) 服务器上的一些统计数据: 1)统计80端口连接数netstat -nat|grep -i "80& ...

  5. linux_NFS

    NFS是什么? 网络文件系统,又叫共享存储,通过网络连接让不同主机之间实现共享存储. 应用于存放图片.附件.视频等用户上传文件 相关同类应用:大型网站nfs有压力,使用moosefs(mfs),Ghu ...

  6. js_8_dom标签

    创:9_3_2017  星期4 修: 对于在a标签中,如何阻止跳转? 定义一个事件,事件顺序执行后才执行跳转,如果事件函数返回false,则后面事件就不触发 事件1 = "return 函数 ...

  7. ECLIPS-S测井系统下的仪器挂接 [TCC模块]

    1. 环境 HPUX版本:11.23 Complete Image ECLIPS版本:Rel 5.1i 2. 效果图 3. 用途 为以后在此系统中挂接新仪器打下坚实的基础. 4. 参考资料 ECLIP ...

  8. 配置struts2拦截器

    <!-- 配置拦截器 -->        <interceptors>            <!-- 声明拦截器 -->            <inte ...

  9. Apache配置虚拟主机后,不能访问localhost

    解决方法:将localhost设为虚拟域名 重要的是要注释掉httpd.conf文件的ServerName localhost:80

  10. 【转】12 TOP Command Examples in Linux

    12个top命令 1. # top 2. # top,后输入shift+O,在“Current Sort Field:”中选左边的field对应的字母进行排序. 3. # top -u tecmint ...