Scanner键盘录入(欢迎交流)
一:练习
判断一个字符串是否是对称字符串,例如"abc"不是对称字符串,"aba"、"abba"、"aaa"、"mnanm"是对称字符串;
二: 过程
1.希望通过Scanner对象,键盘录入的形式,提供要判断的字符串;
2.参考的方法:原先对Scanner对象的nextInt()方法使用比较多,现在知道要获取的是字符串,所以查询到其实:nextXxx()方法,其中大部分的Xxx 表示的是代表基本数据类型的字符串,如果要获取字符串什么也不加,直接使用next()方法即可;
3.为了确保输入要判断的是字符串,避免是一些非法字符或数字,这里使用了Pattern正则表达式中的Boolean matches(string regex,CharSequence input),其方法:编译给定的正则表达式,尝试与给定的输入与其匹配。
自己要扩展学习的方法:
String next(String pattern) 如果下一个输入的内容(字符串),和指定的字符串构造的模式“pattern”匹配,则返回下一个字符串
String next(Pattern pattern)同理,内容中和指定的模式匹配,则返回匹配的下一个字符串
boolean hasNextXxx():是否还有下一个输入项,其中的Xxx也可以表示基本数据类型:Boolean,Byte,Short等,
(1) hasNextLine()即查找,输入中是否存在另一行;
(2)hasNext()查看输入中是否还有另外的String字符串;<接口Iterator<String>>
(3)hasNext(String pattern)查看输入中是否还包含和指定字符串构造的模式一致的,如有,则返回true ;
(4)hasNext(Pattern pattern)查看输入中,是否包含和指定模式一致的,如有,则返回true ;
三:代码演示:
import java.util.Scanner;
import java.util.regex.Pattern;
public class ScannerTest {
/*
*使用Scanner对象接收,键盘录入的字符串(使用循环录入的形式);
*目的:写代码判断录入的字符串是不是对称字符串;
* 如:"abc"不是对称字符串,"aba"、"abba"、"aaa"、"mnanm"是对称字符串;
* 需注意:录入的字符串是不是包括数字,或其他字符;
*
*/
private static String flag="No";//定义一个标识符,用来控制是否还有还要循环
public static void main(String []args){
String s=null;
while(flag=="No"){
System.out.println("请您输入要比较的字符串(结束该程序:输入:No):");
Scanner input=new Scanner(System.in);
s=input.next();
if(s.equals("No")){
break;
}
if(ComTo(s)){
System.out.println("您录入的字符串"+s+"是对称的字符串");
}
else{
if(flag=="Yes"){flag="No";continue;}
System.out.println("您录入的字符串"+s+"不是对称的字符串");
}
}
}
public static Boolean ComTo(String s){
char[]ch=s.toCharArray();
for(int i=0,j=s.length()-1;i<j;i++,j--){
//考虑如何在此处避免让字符串中包括非法数字和字符;此处查看API1.6版本中有:[a-zA-Z]
if((Pattern.matches("[0-9]*", s))||(!Pattern.matches("[a-zA-Z]*",s)))
{ System.out.println("输入的字符串格式不正确");
flag="Yes";
return false;
}
//防止只输入了一个字符,或是直接判断字符串循环的首字母和尾字母是否相等
else if((ch[i])!=(ch[j])||(s.length()==1)){
return false;
}
else
continue;
}
return true;
}
}
四:总结:
希望看代码的人有什么简单的方法或上述代码有什么问题可以回帖写出,促我学习进步,本帖参考过:
http://blog.163.com/quanquan127@126/blog/static/68847725201252995854785/
http://bbs.csdn.net/topics/40138437感谢每个版主的分享。
Scanner键盘录入(欢迎交流)的更多相关文章
- java 键盘录入(Scanner)
键盘录入(Scanner)• 键盘录入数据概述– 我们目前在写程序的时候, 数据值都是固定的, 但是实际开发中, 数据值肯定是变化的, 所以, 把数据改进为键盘录入, 提高程序的灵活性.• 如何实现键 ...
- Java基础知识强化之集合框架笔记36:List练习之键盘录入多个数据在控制台输出最大值
1. 键盘录入多个数据,以0结束,要求在控制台输出这多个数据中的最大值 分析: • 创建键盘录入数据对象 • 键盘录入多个数据,我们不知道多少个,所以用集合存储 • 以0结束,这个简单,只要键盘 ...
- Java基础学习-三元运算符和键盘录入的基本步骤和使用
1.三元运算符的执行流程 package com.denniscui_05; /* * 三元运算符: * 关系表达式?表达式1:表达式2 * * 执行流程: * ...
- Scanner类完成用户键盘录入
l Scanner类 Scanner类是引用数据类型的一种,我们可以使用该类来完成用户键盘录入,获取到录入的数据. Scanner使用步骤: 导包:import java.util.Scanner; ...
- IO流的练习4 —— 键盘录入学生成绩信息,进行排序后存入文本中
需求: 键盘录入5个学生信息(姓名,语文成绩,数学成绩,英语成绩),按照总分从高到低存入文本文件 分析: A:创建学生类 B:创建集合对象 TreeSet<Student> C:键盘录入学 ...
- Java基础知识强化之IO流笔记62:三种方式实现键盘录入
1. 三种方式实现键盘录入 System.in 标准输入流.是从键盘获取数据的 键盘录入数据三种方式: A:main方法的args接收参数. java HelloWorld hello w ...
- Java基础知识强化之IO流笔记51:IO流练习之 键盘录入学生信息按照总分排序写入文本文件中的案例
1. 键盘录入学生信息(姓名,语文成绩,数学成绩,英语成绩),按照总分排序写入文本文件中 分析: A:创建学生类 B:创建集合对象 TreeSet<Student> ...
- Java基础知识强化之网络编程笔记04:UDP之发送端的数据来自于键盘录入案例
1. 数据来自于键盘录入 键盘录入数据要自己控制录入结束. 2. 代码实现: (1)发送端: package com.himi.updDemo1; import java.io.IOException ...
- Java基础知识强化之集合框架笔记49:键盘录入5个学生信息(姓名,语文成绩,数学成绩,英语成绩)按照总分从高到低输出到控制台
1. 键盘录入5个学生信息(姓名,语文成绩,数学成绩,英语成绩)按照总分从高到低输出到控制台: 分析: A: 定义学生类 B: 创建一个TreeSet集合 C: 总分从高到底如何实现 ...
随机推荐
- open Live Writer配置步骤
一.关于 Open Live Writer 微软推出的一款能够免费使用的博客写作软件,主要为用户提供博客在线撰写和编辑功能,可以离线编辑,联网时同步到各大博客网站上去. 接下来,介绍如何使用这款工具发 ...
- gradle 命令
gradle -v gradle clean gralde build gradle assembleDebug gradle assembleRelease gradle clean --refre ...
- dubbo 转
http://blog.csdn.net/zhiguozhu/article/details/50517513 背景 随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式 ...
- bootstrap表格内容垂直居中
td{ vertical-align: middle !important;}
- How to Allow MySQL Client to Connect to Remote MySql
How to Allow MySQL Client to Connect to Remote MySQ By default, MySQL does not allow remote clients ...
- elasticsearch单机多实例环境部署
elasticsearch的功能,主要用在搜索领域,这里,我来研究这个,也是项目需要,为公司开发了一款CMS系统,网站上的搜索栏功能,我打算采用elasticsearch来实现. elasticsea ...
- 字符数组,字符指针,字符串常量,以及sizeof的一些总结
1.以字符串形式出现的,编译器都会为该字符串自动添加一个\0作为结尾 如在代码中写"abc",编译器帮你存储的是"abc\0". 2.数组的类型是由该数组所存放 ...
- SpringMVC学习系列(1) 之 初识SpringMVC
1.前言: 与SpringMVC的结识源于个人之前想做一个微信公众账号的管理平台玩玩,既然要做就需要考虑平台的选择问题.由于我的朋友只有一台运行了Linux系统的虚拟主机,且上面还运行有他自己的一些论 ...
- php命令传参
1.url方式 $param = array(); if ($argc > 1) { parse_str ( $argv [1], $param ); foreach ( $param as $ ...
- Online Object Tracking: A Benchmark 翻译
来自http://www.aichengxu.com/view/2426102 摘要 目标跟踪是计算机视觉大量应用中的重要组成部分之一.近年来,尽管在分享源码和数据集方面的努力已经取得了许多进展,开发 ...