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.*; 符合一定规 ...
随机推荐
- gulp入坑系列(2)——初试JS代码合并与压缩
在上一篇里成功安装了gulp到项目中,现在来测试一下gulp的合并与压缩功能 gulp入坑系列(1)--安装gulp(传送门):http://www.cnblogs.com/YuuyaRin/p/61 ...
- JSP利用freemarker生成基于word模板的word文档
利用freemarker生成基于word模板的word文档 freemarker简介 FreeMarker是一个用Java语言编写的模板引擎,它基于模板来生成文本输出.FreeMarker与Web容器 ...
- location对象及history对象
history对象 location 是最有用的BOM对象之一,它提供了与当前窗口中加载的文档有关的信息,还提供了一些导航功能.事实上,location 对象是很特别的一个对象,因为它既是windo ...
- tomcat已 .war 包的形式发布项目
一:首相将写好的工程打成.war 文件包, 借助eclipse工具完成. 右键项目名称 --> Export --> WAR file 进入如下图 二: 进入到Tomcat的 webap ...
- 【转】C++的拷贝构造函数深度解读,值得一看
建议看原帖 地址:http://blog.csdn.net/lwbeyond/article/details/6202256 一. 什么是拷贝构造函数 首先对于普通类型的对象来说,它们之间的复制是很 ...
- 关于在Xcode的OC工程中相对路径失败的原因
Xcode的工程生成的可执行文件不是默认在源文件同一个目录下面的,所以当可执行文件执行的时候,相对路径就不对了. 这一点用终端直接编译执行文件证明了这一点: clang -fobjc-arc -fra ...
- Visual Studio发布Web项目报错:Unable to add 'xxx' to the Web site. Unable to add file 'xxx'. The specified file could not be encrypted.
背景 Visual Studio下的Web项目 现象 发布时遇到Unable to add 'xxx' to the Web site. Unable to add file 'xxx'. The ...
- TCP面向连接网络编程
一 TCP&UDP协议 TCP,Tranfer Control Protocol,是一种面向连接的保证可靠传输的协议.通过TCP协议传输,得到的是一个顺序的无差错的数据流.发送方和接收方的成对 ...
- java常用开发工具类之 图片水印,文字水印,缩放,补白工具类
import java.awt.AlphaComposite; import java.awt.Color; import java.awt.Font; import java.awt.Graphic ...
- loadrunner常用函数
1.关联函数:web_reg_save_param("session", "LB=value=", "RB=>", LAST);