Java String 中的一些函数与正则的结合使用
首先正则表达式在处理字符串问题时,真的非常强大。
正则可以帮助我们处理字符串的: 匹配, 选择, 编辑, 验证等问题。
正则中"\\"表示插入一个"\"
这里仅是记录String 与 正则的结合:
1:验证:
import java.util.Arrays;
import java.util.Scanner; public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner cin = new Scanner(System.in); System.out.println("-1234".matches("-?\\d+")); //可能以-开头以数字结尾的
System.out.println("5678".matches("-?\\d+"));
System.out.println("+1234".matches("-?\\d+"));
System.out.println("+2344".matches("(-|\\+)?\\d+"));//可能以-或者+开头以数字结尾的
}
}
输出:
true
true
false
true
2:分割字符串:
结合split进行分割:
import java.util.Arrays;
import java.util.Scanner; public class Main {
public static String s = "I am a good student... haha"; public static void main(String[] args) {
//以空格进行分割,返回一个list
System.out.println( Arrays.asList(s.split(" ")) );
//以非字符进行分割 W表示一个 W+表示后边跟任意个
System.out.println( Arrays.asList(s.split("\\W+")));
//以以g开头后边跟字符的进行分割
System.out.println( Arrays.asList(s.split("g\\w+")));
}
} 输出:
[I, , , am, a, good, student..., haha]
[I, am, a, good, student, haha]
[I am a , student... haha]
4:替换:
import java.util.Arrays;
import java.util.Scanner; public class Main {
public static String s = "I am a good student... haha good"; public static void main(String[] args) {
System.out.println(s.replaceFirst("g\\w+", "very good"));
System.out.println(s.replaceAll("g\\w+", "very good"));
}
} 输出:
I am a very good student... haha good
I am a very good student... haha very good
然后发现之前自己在oj上的一道简单的题目Java几行代码就解决了:
SDUT 2192 http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2192
import java.util.Arrays;
import java.util.Scanner; public class Main { public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner cin = new Scanner(System.in);
int n = cin.nextInt();
String s = null;
for (int i = 0; i < n; ++i) {
s = cin.next();
System.out.println(s.replaceAll("cRazY", "CrAZy").replaceAll("CraZy", "cRAzY"));
}
} }
Java String 中的一些函数与正则的结合使用的更多相关文章
- 【Java.Regex】使用正则表达式查找一个Java类中的成员函数
代码: import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; imp ...
- string中常用的函数
string中常用的函数 发现在string在处理这符串是很好用,就找了一篇文章放在这里了.. 用 string来代替char * 数组,使用sort排序算法来排序,用unique 函数来去重1.De ...
- string 中的 length函数 和size函数 返回值问题
string 中的 length函数 和 size函数 的返回值 ( 还有 char [ ] 中 测量字符串的 strlen 函数 ) 应该是 unsigned int 类型的 不可以 和 -1 ...
- Linux上从Java程序中调用C函数
原则上来说,"100%纯Java"的解决方法是最好的,但有些情况下必须使用本地方法.特别是在以下三种情况: 需要访问Java平台无法访问的系统特性和设备: 通过基准测试,发现Jav ...
- C++ string中的find()函数
1.string中find()返回值是字母在母串中的位置(下标记录),如果没有找到,那么会返回一个特别的标记npos.(返回值可以看成是一个int型的数) #include<cstring> ...
- 使用Mysql中的concat函数或正则匹配来快速批量生成用于执行的sql语句
背景介绍 今天需要给一张表里面补数据,需要按照行的维度进行update,如果是个别数据那么直接写update语句就可以了,但是场景要求的是将整表的数据进行update,要实现这个需求就不能只靠蛮力了, ...
- java String 中 intern方法的概念
1. 首先String不属于8种基本数据类型,String是一个对象. 因为对象的默认值是null,所以String的默认值也是null:但它又是一种特殊的对象,有其它对象没有的一些特性. 2. ne ...
- thread.join函数,java多线程中的join函数解析
join函数的作用,是让当前线程等待,直到调用join()的 线程结束或者等到一段时间,我们来看以下代码 package mian; public class simpleplela { static ...
- C++中string中的erase函数怎么使用
erase函数的原型如下:(1)string& erase ( size_t pos = 0, size_t n = npos );(2)iterator erase ( iterator p ...
随机推荐
- [py]flask蓝图的使用
参考 flask挺挺轻巧的, 因此玩一玩它. 如果用它做大型点的项目, 就用到了它的蓝图组织项目. 一时半会不太清楚这玩意怎么用, 得撸一撸py基础了. 我搞了个movie小的flask栗子来用用蓝图 ...
- HTTP权威指南读书笔记
HTTP权威指南笔记 读书有两种境界,第一种境界是将书读薄,另一种是读厚.本篇文章就是HTTP权威指南的读书笔记,算是读书的第一重境界,将厚书读薄.文章对HTTP的一些关键概念做了比较详细的概述,通读 ...
- mysql 开启慢查询
linux启用MySQL慢查询 vim /etc/my.cnf [mysqld] slow-query-log = on slow_query_log_file = /var/log/slow_que ...
- [LeetCode] 724. Find Pivot Index_Easy tag: Dynamic Programming
Given an array of integers nums, write a method that returns the "pivot" index of this arr ...
- ios 工作日志
1.设计模式 1.1 想用一个controllerK控制多个页面的切换 但是每一个页面必须要引用这个controller,这样才能控制进度, 所以必须是弱引用.controller必须被某一个实例强引 ...
- c++多态特性总结
将父类比喻为电脑的外设接口,子类比喻为外设,现在我有移动硬盘.U盘以及MP3,它们3个都是可以作为存储但是也各不相同.如果我在写驱动的时候,我用个父类表示外设接口,然后在子类中重写父类那个读取设备的虚 ...
- vs2015 相关
VS2015一共有3个版本,Visual Studio Community(社区版).Visual Studio Professional(专业版).Visual Studio Enterprise( ...
- jQ live用法
我们给元素绑定单击事件.用得最多的都是$("#id").click(function(){}); 但我们动态添加的元素.这样绑定是不行的.必须借助live $("#id ...
- java数据结构经典问题
A:栈抽象数据类型 1.栈的主要操作 void push(int data);将data数据插入栈中. int pop();删除并返回最后一个插入栈的元素. 2.栈的辅助操作 int top();返回 ...
- dedecms开启多站点
dedecms开启多站点后,填写域名才能正确的地址 if ( ! function_exists('GetFileUrl')) { function GetFileUrl($aid,$typeid,$ ...