JAVA中字符串倒序、判断名字中英文、判断手机号格式以及正则表达式应用
将字符串倒序的三种写法
1.先定义字符串 hello-123-java中国
public static void main(String[] args) {//将字符串倒序String str = "hello-123-java中国";System.out.println(str+" 第一次输出");
}
第一种写法:利用反转函数reserve
//revers 将字符串进行倒序System.out.println(new StringBuilder(str).reverse()+" 第一种方法运行结果");
第二种写法:利用substring 进行截取
StringBuilder su = new StringBuilder();String temp = " ";for (int i=0; i<str.length() ;i++){temp = str.substring(i ,i+1)+ temp ;}System.out.println( temp+" 输出temp的结果");
第三种写法:利用charAt ,返回一个字符串的指定位置的字符
StringBuilder su = new StringBuilder();for (int i=0; i<str.length() ;i++){su.insert(0,str.charAt(i));}System.out.println(su+" 输出su的结果");
三种方法的结果如下:
判断名字的中英文类型
创建Scanner 类对象
定义名字的类型方式
用matchers检测字符串是否匹配给定的正则表达式
([\u4e00-\u9fa5]{2,8} 代表2到8个汉字字符)
//判断字符串是不是中文字符?Scanner sc = new Scanner(System.in);System.out.println( "请输入姓名:");//trim()和strip()都可以使用String name = sc.nextLine().trim();if (name .matches("[\u4e00-\u9fa5 ]+")){System.out.println("欢迎:"+ name);}else {System.out.println("Welcome:"+ name);}//这样写也是可以的Scanner sc =new Scanner(System.in);System.out.println("请输入字符串: ");String ss =sc.nextLine().trim();if (ss.matches("[\u4e00-\u9fa5 ]+")){System.out.println("欢迎你: "+ss);} else if (ss.matches("[a-zA-Z ]+")) {System.out.println("Hello :" + ss);} else {System.out.println("其他的输出方式,请在思考其他方法的使用");}
两种不同的输出结果:
判断手机号格式:
利用ASCII码进行判断:
//判断一个手机是不是正确的手机号System.out.println("请输入你的手机号: ");String phone = sc.nextLine().trim();boolean f = true;if (phone.length() == 11 && phone.startsWith("1")) {for (int i = 1; i < phone.length(); i++) {char c = phone.charAt(i);if (c >= '0' && c <= '9') {} else {f = false;break;}}} else {f = false;}if (f) {System.out.println("手机号格式正确: " + phone);} else {System.out.println("手机号格式错误");}}
}
利用正向表达式进行书写:
//判断一个手机是不是正确的手机号Scanner sc =new Scanner(System.in);System.out.println("请输入你的手机号: ");String phone = sc.nextLine().trim();if (phone.matches("1[358]\\d{9}")) {System.out.println("手机号格式正确: " + phone);} else {System.out.println("手机号格式错误");}}
}
正则表达式
正则表达式是一种字符串的表示模式,是一种特殊的字符串
.*中 .代表一个任意符号(什么都行),*代表前边的符号出现0次或者多次,和{0,}类似
.*也可以表达为.{0,}
在我现在所学的知识中,要在[ ]中加空格,在空格外加会报错
public static void main(String[] args) {//判断字符串有没有大小写字母//判断字符串是不是大写字母组成System.out.println("Hello".matches("[A-Z]+"));//判断字符串有没有大写字母System.out.println("Hello".matches(".*[A-Z]+.*"));System.out.println("hello".matches(".*[A-Z]+.*"));//判断字符串中有没有汉字System.out.println("hello 世界".matches(".*[\u4e00-\u9fa5].*"));//判断字符串中有没有数字 \\d = [0-9]System.out.println("hello526".matches(".*[0-9].*"));System.out.println("hello526".matches(".*\\d.*"));//判断字符串中有没有手机号System.out.println("我的手机号是:13110111010 .".matches(".*1[358]\\d{9}.*"));}
这两行的输出结果就很有意思:
String ss = "123abcdefg3555AABBCCDD255java44php";System.out.println(ss.replaceAll("[0-9]*","?"));
输出结果:??a?b?c?d?e?f?g??A?A?B?B?C?C?D?D??j?a?v?a??p?h?p?
如果再正则表达式输出前的括号内加上一个空格会进行报错,输出不来想要的结果
Scanner sc = new Scanner(System.in);System.out.println("请输入姓名字符串: ");String aa = sc.nextLine().trim().strip();//再正则表达式的最后的引号前加空格会报错,注释的地方进行输出的时候,输入中中文会报错// if (aa.matches("[\u4e00-\u9fa5 ]+ ")){if (aa.matches("[\u4e00-\u9fa5 ]+")){System.out.println("你好 :" +aa);} else if (aa.matches("[a-zA-Z ]+")) {System.out.println("hello : " +aa);}else {System.out.println("请输入正确的字符串 ");}
在项目注册的时候,名字要么是中文要么是英文
Scanner sc = new Scanner(System.in);System.out.println("请输入姓名 : ");String name = sc.nextLine().strip();Pattern p = Pattern.compile("[a-zA-Z\s]+|[\u4e00-\u9fa5\s]{2,}");Matcher m = p.matcher(name);if (m.matches()){System.out.println("姓名格式正确: "+ name );}else {System.out.println("格式错误: " + name );}
JAVA中字符串倒序、判断名字中英文、判断手机号格式以及正则表达式应用相关推荐
- java中字符串不等于_java中字符串不等于怎么判断
java中字符串不等于可以使用equals()方法判断,equals()方法用于将字符串与指定的对象比较. 语法public boolean equals(Object anObject) 参数 an ...
- Java实现字符串倒序输出
Java实现字符串倒序输出 package Strin;//文件夹名称import java.util.Scanner;//导入的Scanner包public class Demo {//类的名称pu ...
- 【转】Java中字符串中子串的查找共有四种方法(indexof())
原文网址:http://wfly2004.blog.163.com/blog/static/1176427201032692927349/ Java中字符串中子串的查找共有四种方法,如下: 1.int ...
- java中字符串的精确匹配_Java最佳实践–字符串性能和精确字符串匹配
java中字符串的精确匹配 在使用Java编程语言时,我们将继续讨论与建议的实践有关的系列文章,我们将讨论String性能调优. 我们将专注于如何有效地处理字符串创建, 字符串更改和字符串匹配操作. ...
- [转载] Java 中字符串转整型和整型转字符串
参考链接: Java中的字符串到整数– parseInt() Java 中字符串转整型和整型转字符串 1.字符串转整型Java代码,字符串为纯数字的情况下,调用Integer的静态方法parseInt ...
- Java中字符串中子串的查找共有四种方法(indexof())
2019独角兽企业重金招聘Python工程师标准>>> public class FirstDemo { /** *API中String的常用方法 */ // 查找指定字符串是否存在 ...
- java中字符串 MD5密码的加密与验证
java中字符串 MD5密码的加密与验证 MD5即Message-Digest Algorithm 5(信息-摘要 算法 5),用于确保信息传输完整一致.是计算机广泛使用的杂凑算法之一(又译 摘要 ...
- Java 中字符串转整型和整型转字符串
Java 中字符串转整型和整型转字符串 1.字符串转整型 Java代码,字符串为纯数字的情况下,调用Integer的静态方法parseInt或者valueOf Java代码,如果单个字符或字符串,需要 ...
- Java中字符串的比较
"=="比较两个对象时,比较的是两个对象的内存地址 equals() 比较的是对象的内容(区分字母的大小写) 一.用"=="方法: (1)String a=&q ...
最新文章
- vue3.0环境搭建
- Ubuntu10下MySQL搭建Amoeba_读写分离
- 第十五届全国大学生智能车东北赛区成绩
- XML学习笔记之XML的简介
- sap系统操作流程财务软件_金蝶财务软件的操作流程汇总
- win7任务栏还原为xp样式
- sklearn 决策树(分类树、回归树)的 重要参数、属性、方法理解
- 利用计算机峰值,计算机的峰值速度
- 量子计算机能让科技发展有多快,量子计算机有多快?
- Secret Passwords CodeForces - 1263D(并查集)
- 操作系统上机作业--根据莱布尼兹级数计算PI(2)(多线程)
- 数据结构之自建算法库——链栈
- java ldap添加用户名密码_java ldap用户密码md5加密
- (1)PCIE接口应用领域(学无止境)
- 安卓模拟器手游辅助制作教程
- 蓝桥杯试题c语言蛇形填数,2020十月份蓝桥杯B组省赛题解大全(害!附题面文件和部分代码~)...
- 人声歌姬语音合成器+11个歌手音源-Yamaha Vocaloid 5.2.1 + Libraries WiN
- Java数据结构树实验报告总结_20172302 《Java软件结构与数据结构》实验二:树实验报告...
- drools学习笔记-rule组织方式
- 爬取腾讯招聘的招聘信息(简单)
热门文章
- Word中英文导致空格间距过大如何解决?
- 另一棵树的子树(你一定要会的基础面试题)
- 美团数据指标体系搭建实战
- 10天精读掌握:计算机组成与设计(COAD:Patterson and Hennessy) (第3天 2018/10.26)
- C/C++经典例题:百钱百鸡
- 笔记本出现数字小键盘怎么解决,出现方形带斜杠123
- 超级轻量级: KV存储引擎实现
- grunt 压缩 html,如何使用 grunt 插件压缩合并 js ?减少页面请求数的秘诀
- 【Vant相关知识】
- 常见锁策略_CAS(Compare And Swap)_synchronized优化