java 14-3 正则表达式的分割
分割功能
String类的public String[] split(String regex)
根据给定正则表达式的匹配拆分此字符串。
例子:
可以用来做年龄段的筛选,比如说,我要筛选18-26之间的年龄段的人
而18-26在后台是字符串"18-26",而年龄在后端是int类型的,18,23之类的。
所以,我们要对"18-26"这个字符串进行操作:
A:分割取18 和 26,
B:把18和26转成int类型的
C:键盘输入年龄
D:对这个年龄进行判断
a:符合这个年龄段
b:不符合这个年龄段
import java.util.Scanner;
public class NameTest { public static void main(String[] args) {
//定义年龄段的搜索范围
String ages = "18-26"; //定义正则表达式的规则
String regex = "-"; //调用方法,把-给分割掉
String[] array = ages.split(regex); //把array的第一个数据变成int,此时array = {18,26};
int startage = Integer.parseInt(array[0]);
//第二个数据变成int
int endage = Integer.parseInt(array[1]); //键盘输入年龄
Scanner sc = new Scanner(System.in);
System.out.println("请输入年龄");
int age = sc.nextInt(); //对输入的年龄进行判断
if( age >= startage && age <= endage){
System.out.println("你的年龄符合");
}
else{
System.out.println("你的年龄不符合");
}
} }
我有如下一个字符串:"91 27 46 38 50"
请写代码实现最终输出结果是:"27 38 46 50 91"
分析:
A:定义一个字符串
B:把字符串中的空格分隔开
C:把字符串转换成数组
D:把数组里的元素转换成int类型
a:首先得定义一个int数组,长度跟字符串数组一样
b:然后再把数组里的元素转成int类型
E:给int数组进行排序
F:对排序后的数组进行拼接,转换成字符串
G:输出字符串
import java.util.Arrays;
public class DivisionTest3 { public static void main(String[] args) {
//定义一个字符串
String s = "91 27 46 38 50";
//直接分割开空格
String[] str = s.split(" ");
//把字符串转换成数组
char[] c = s.toCharArray();
//把数组里的元素转换成int类型
//a:首先得定义一个int数组,长度跟字符串数组一样
int[] arr = new int[str.length];
//b:然后再把数组里的元素转成int类型
for(int x = 0;x < str.length ; x++){
arr[x] = Integer.parseInt(str[x]);//字符串数组里的元素转成int类型
}
//E:给int数组进行排序 public static void sort(int[] a)
Arrays.sort(arr);
//F:对排序后的int数组进行拼接,转换成字符串
//定义一个StringBuilder,比StringBuffer高效率
StringBuilder sb = new StringBuilder();
for(int x = 0; x < arr.length; x++){
if(x < arr.length){
sb.append(arr[x]+" ");
}
}
//由于这样的拼接,最后一个元素后面有空格,所以要去除空格
//public String trim() 返回字符串的副本,忽略前导空白和尾部空白。
//由于这个方法是针对字符串的,所以,得把sb转换成字符串
String result = sb.toString().trim();
//输出结果
System.out.println("转换后的结果是:"+result);
} }
替换功能
String类的public String replaceAll(String regex,String replacement)
使用给定的 replacement 替换此字符串所有匹配给定的正则表达式的子字符串。
例子:
有些论坛的回复内容都屏蔽掉了连续出现5个数字以上的情况,改成用**代替。这个就可以设置
分析:
A:创建键盘录入
B:设置方法
a:返回类型 String
b:参数列表 String
public class ReplaceTest1 { public static void main(String[] args) { //键盘录入
Scanner sc = new Scanner(System.in);
System.out.println("回复:");
String str = sc.nextLine(); //调用方法
System.out.println("内容:"+replace(str));
} //定义方法
public static String replace(String str){
//设置正则表达式的屏蔽规则
String reuslt = str.replaceAll("\\d{5,}", "***"); //数字连续出现5次或5次以上,直接用***替换掉
return reuslt;
}
}
java 14-3 正则表达式的分割的更多相关文章
- java 14 -1 正则表达式
正则表达式:符合一定规则的字符串. 1.判断QQ号码是否正确的案例: public class RegexDemo2 { public static void main(String[] args) ...
- Java基础七-正则表达式
Java基础七-正则表达式 一.定义: 特定的符号的组合 二.作用: 用于操作字符串数据 三.优缺点 简化代码,但是阅读性差 四.引入 4.1 问题 判断一个号码是否是QQ号? 不是零开头 6-15位 ...
- java密码验证正则表达式校验
,正则表达式就是记录文本规则的代码.php密码验证正则表达式(8位长度限制)<?php //密码验证 $password = "zongzi_Abc_oo13a2"; $n ...
- 详解Java API之正则表达式
正则表达式描述的是一种规则,符合这种限定规则的字符串我们认为它某种满足条件的,是我们所需的.在正则表达式中,主要有两种字符,一种描述的是普通的字符,另一种描述的是元字符.其中元字符是整个正则表达式的核 ...
- (转)Java中使用正则表达式的一个简单例子及常用正则分享
转自:http://www.jb51.net/article/67724.htm 这篇文章主要介绍了Java中使用正则表达式的一个简单例子及常用正则分享,本文用一个验证Email的例子讲解JAVA中如 ...
- 【java 正则表达式】记录所有在java中使用正则表达式的情况
本篇记录在java中邂逅正则表达式的所有美丽瞬间.因为在java和js中正则表达式的语法并不一致. 1.匹配字符串中有出现[2.1开头或者&2.1或者&3.1等的] Pattern m ...
- 9.JAVA中的正则表达式
一.JAVA中的正则表达式 1.概念:以某种特定的方式描述字符串 1.Java中正则表达式的规则 ? #{0,1}-?有一个-或者没有 \\ #表示一个" ...
- JAVA自动生成正则表达式工具类
经过很久的努力,终于完成了JAVA自动生成正则表达式工具类.还记得之前需要正则,老是从网上找吗?找了想修改也不会修改.现在不用再为此烦恼了,使用此生成类轻松搞定所有正则表达式.赶快在同事面前炫一下吧. ...
- JAVA中的正则表达式--待续
1.关于“\”,在JAVA中的正则表达式中的不同: 在其他语言中"\\"表示为:我想要在正则表达式中插入一个普通的反斜杠: 在Java中“\\”表示为:我想要插入一个正则表达式反斜 ...
- 黑马程序员:Java基础总结----正则表达式
黑马程序员:Java基础总结 正则表达式 ASP.Net+Android+IO开发 . .Net培训 .期待与您交流! 正则表达式 import java.util.regex.*; 符合一定规 ...
随机推荐
- [js开源组件开发]图片懒加载lazyload
图片懒加载lazyload 前端对请求的一种优化方式,为什么叫懒加载,无从查起,反正我当初一直认为它是滚动加载的一种类型.它主要是以图片或背景在可视区域内时才显示真正的图片,减少src带来的负荷.所以 ...
- SQLSERVER数据库表各种同步技术
1 --SQLSERVER数据库表各种同步技术 减少SQLServer中每次的同步数据量 2 3 --说到数据库,我就不由地想到同步数据,如何尽可能地减少每次的同步数据量,以此来提高同步效率,降低对网 ...
- <input type="text"/>未输入时属性value的默认值--js学习之路
在百度ife刷题是自己的一个错误引发了我对<input type="text"/>的学习. 先贴代码: <!DOCTYPE html> <html&g ...
- Access sql语句创建表及字段类型
创建一张空表: Sql="Create TABLE [表名]" 创建一张有字段的表: Sql="Create TABLE [表名]([字段名1] MEMO NOT NUL ...
- 我为什么用 SQLite 和 FMDB 而不用 Core Data
凭良心讲,我不能告诉你不去使用Core Data.它不错,而且也在变好,并且它被很多其他Cocoa开发者所理解,当有新人加入你的组或者需要别人接手你的项目的时候,这点很重要.更重要的是,不值得花时间和 ...
- IOS设计模式-抽象工厂
抽象工厂的灵活性要比简单工程的灵活性强. 抽象工厂的UML图(第一次画UML图,可能关系和箭头的图意义有错误,但是请不要以建模规范去看图,以最基本的结合后面OC代码,理解相关关系): 抽象工厂原理:抽 ...
- CentOS下安装MySQL
首先通过网络链接的方式在线安装上mysql服务器端吧!(备注:我开始登录服务器的时候是用的其他用户而不是超级管理员,所以安装MySQL的时候需要切换到超级管理员才可以实现软件的正确安装.命令则是:su ...
- 史上最全的MSSQL复习笔记 (转连接)
http://www.cnblogs.com/gameworld/p/4790881.html
- Linux Shell 01 脚本与变量
一 脚本的创建和执行 1. 创建文件*.sh,文件后缀为sh 2. 编辑脚本 首行必须为:#!/bin/bash #指定解释脚本的shell 3. 赋权 chmod u+x a.sh 4. 执行 ...
- .NET 分页
.net分页 1.存储过程create procedure 存储过程名( @pageIndex int, //第几页 @pageSize int ...