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: 总分从高到底如何实现 ...
随机推荐
- Java使用Jdbc操作MySql数据库(一)
这个示例是Java操作MySql的基本方法. 在这个示例之前,要安装好MySql,并且配置好账户密码,创建一个logininfo数据库,在数据库中创建userinfo数据表.并且在表中添加示例数据. ...
- Python-select详解(select、epoll)
select函数操作集合的时候有个要求,要么集合本身是描述符,要么他提供一个fileno()接口,返回一个描述符. I/O多路复用是在单线程模式下实现多线程的效果,实现一个多I/O并发的效果.看一个简 ...
- winform基本控件----按钮
这次来引用一个我们上课时候老师给的一个实验内容,来说一下winform程序设计中的按钮控件的使用.下面是我们老师给的实验内容. 实验目的: 掌握Winform的开发环境. 掌握窗体的创建和基本方法. ...
- C# : Post 接收或发送XML
项目分成两个 web(ASP.Net)用户处理请求,客户端(wpf/winform)发送请求 1.web项目 有两个页面 SendPost.aspx(单纯发送数据给客户端) 代码: public pa ...
- [zz] 英文大写缩写前要加THE吗
http://zhidao.baidu.com/link?url=BvXRdoE0OjGh46rlodbyM3wirORSGGcnYGq0xYEtcoIMTkLnXd4Hl3iMLbKNb2npRdI ...
- UE用法
ueditor去除自动转换 ueditor在使用中发现很多问题.比如自动添加P标签,自动去除span,自动给li添加ul开始结束,自动把div转成P标签等等. 其实很多在百度上可以找到.这里总结下, ...
- CentOS 6.5 安装 Python3
1.安装环境 yum -y install gcc zlib-devel make 2.下载python版本 wget http://www.python.org/ftp/python/3.5.1/P ...
- RFC3986编码 C 语言实现(支持大部分中文)
前些时间做 xauth 认证程序的编写,网上找到RFC3986编码不支持中文的编码,所以便查找了一些资料.自己写了一个,代码如下. #include <stdlib.h> #include ...
- 为什么要用Maven?
早期还在学怎么用Ant构建项目时,就有看到说Maven是Ant的替代品,但真正意义去了解Maven,还是因为以前的公司一老员工在做OpenJMS二次开发时,从网上下载了源码,然后用Maven构建它. ...
- edittext_解释
============ 2 android判断EditText输入的数字.中文还是字母方法 String txt = edInput.getText().toString(); Patter ...