利用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中的很多语句可以改变语句的默认执行顺序.本文 ...
随机推荐
- Java数据持久层框架 MyBatis之API学习一(简介)
对于MyBatis的学习而言,最好去MyBatis的官方文档:http://www.mybatis.org/mybatis-3/zh/index.html 对于语言的学习而言,马上上手去编程,多多练习 ...
- c#中RGB与int类型之间的转换
Color color = Color.FromArgb(0, 0, 255);int colorInt = ParseRGB(color); --------------------- int Pa ...
- 如何导入css和js?
导入css <link rel="stylesheet" href="css路径" type="text/css"> 导入js, ...
- python_如何进行反向迭代和实现反向迭代?
案例: 实现一个连续的浮点数发生器,FloatRange,根据给定范围(start, end) 和步进值,产生一些列的浮点数,例如:FloatRange(3,4,0.2),将产生下列序列: 正向:3. ...
- scrapy_ItemLoader
什么是Itemloader? 一种容器,实现直白高效字段提取 直接赋值取值的方式,会出现一下几个问题 代码量一多,各种css和xpath选择器,充斥整个代码逻辑,没有规则,不利于维护 对于一个字段的预 ...
- 转-How to install an SSH Server in Windows Server 2008
window也可以通过ssh客户端连接,具体方式参考下面 1 How to install an SSH Server in Windows Server 2008 2 freeSSHd and fr ...
- Java虚拟机栈和本地方法栈
Java虚拟机栈的特征 线程私有 后进先出(LIFO)栈 存储栈帧,支持Java方法的调用.执行和退出 可能出现OutOfMemoryError异常和StackOverflowError异常 Java ...
- 【转】C++易混知识点1: 指针常量和常量指针的区别,附有详细案例解释
熟悉C++也已经有一些年头了,今天突然翻出当年浏览的书籍,对一些概念居然生疏了,指针常量和常量指针由于 指针 这一特殊的对象而变得难以区别.因此,在思考再三之后,决定写下该篇总结,加强对他们的区别: ...
- 【转】globk中的控制文件
globk_comb.cmd * This group must be first eq_file ../tables/eq_renames make_svs ../tables/sat1.apr c ...
- 手把手 学习Git
一:Git是什么? Git是目前世界上最先进的分布式版本控制系统. 二:SVN与Git的最主要的区别? SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以 ...