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.*; 符合一定规 ...
随机推荐
- java微信开发(wechat4j)——发送客服消息
微信支持主动发送客服消息.如果你要实现此功能,需要使用CustomerMsg类. 获得access_token access_token请求之后有一个过期时间,微信平台建议你使用一个中控服务器来定时刷 ...
- ASP.NET本质论第二章应用程序对象学习笔记1
1.请求的处理参数—上下文对象HttpContext 1) 针对每一次请求,ASP.NET将创建一个处理这次请求所使用的HttpContext对象实例,这个对象实例将用来在ASP.NET服务器的处理过 ...
- HTML5中的音视频处理
* 音视频处理 * 视频处理 * 基本内容 * 使用Flash技术处理HTML页面中的视频内容 * 包含音频.动画.网页游戏等 * 特点 * 浏览器原生不支持(IE浏览器要求安装ActiveX组件) ...
- 代码导出Reporting Services报表文件
背景部分 使用Reporting Services很容易制作和发布我们需要的报表,报表效果也还不错 不过如果报表数据过大或报表数量过多,打开及查看报表感觉可能就是另外一回事了 好在Reporting ...
- Disconnected: No supported authentication methods available (server sent: publickey)
安装Git客户端后,进行PULL时报如下错误 disconnected no supported authentication methods available(server sent: publi ...
- mysql innoDB 挂了的临时解决方案
Mysql InnoDB: Error: checksum mismatch by Mattias Hemmingsson on December 23, 2013 in Linux • 6 Comm ...
- 迭代器 iterator(二): 用iterator遍历arraylist
迭代器(iterator)是一种对象,它能够用来遍历标准模板库容器中的部分或全部元素,每个迭代器对象代表容器中的确定的地址.迭代器修改了常规指针的接口,所谓迭代器是一种概念上的抽象:那些 ...
- 网络开始---多线程---GCD-01-基本使用(掌握)(六)
/** GCD两个核心概念:任何和队列 任务:执行什么操作 队列:用来存放任务 使用就2个步骤 1.定制任务 2.将任务添加到队列中 任务的取出队列原则:FIFO原则: 先进先出,后进后出 */ #i ...
- iOS 准确计算某个时间点距现在的时间差的代码 如"几分钟,几小时,几秒之前" ,
利用时间戳来进行计算 ,需要给它一个时间: NSString *countTime = [self intervalSinceNow:@"2015-10-29 17:00:00" ...
- 忙碌的Nova君 (活动安排问题、贪心算法)
题目描述 理论上,Nova君是个大闲人,但每天还是有一大堆事要干,大作业啦,创新杯啦,游戏啦,出题坑人啦,balabala......然而精力有限,Nova君同一时间只能做一件事,并不能一心二用.假设 ...