「java模式匹配」模式匹配例题
本篇文章给大家谈谈java模式匹配,以及模式匹配例题对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、编写Java程序,将一字符串其中的大小写字母的字符分别输出
- 2、java正则表达式匹配模式
- 3、java中string.matcher(regex)如何指定匹配模式, 即要实现和js中的/i/m/g等等的功能
- 4、JAVA正则表达式,matcher.find和 matcher.matches的区别
编写Java程序,将一字符串其中的大小写字母的字符分别输出
循环字符串用charAt方法来获取字符,将字符转为int,只要判断转换后的数值就可以判断大小写字母,大写字母的范围是65-90,小写字母的范围是97-122。
public class Main {
public static void main(String[] args) {
String s = "aaBvdEFdsd";
StringBuffer ss = convertString(s);
System.out.println("大小写转换后是:" + convertString(s));
System.out.println("倒序输出后是:" + ss.reverse());
}
public static StringBuffer convertString(String str) {
String upStr = str.toUpperCase();
String lowStr = str.toLowerCase();
StringBuffer buf = new StringBuffer(str.length());
for (int i = 0, k = str.length(); i k; i++) {
{
if (str.charAt(i) == upStr.charAt(i)) {
buf.append(lowStr.charAt(i));
} else {
buf.append(upStr.charAt(i));
}
return buf;
扩展资料:
字符串在存储上类似字符数组,它每一位单个元素都是能提取的,字符串的零位是它的长度,如s[0]=10,这提供给我们很多方便,例如高精度运算时每一位都能转化为数字存入数组。
通常以串的整体作为操作对象,如:在串中查找某个子串、求取一个子串、在串的某个位置上插入一个子串以及删除一个子串等。两个字符串相等的充要条件是:长度相等,并且各个对应位置上的字符都相等。设p、q是两个串,求q在p中首次出现的位置的运算叫做模式匹配。串的两种最基本的存储方式是顺序存储方式和链接存储方式。
参考资料来源:百度百科-字符串
java正则表达式匹配模式
不需要完全匹配的正则表达式,用m1.find()函数就可以模糊匹配,完整的程序如下:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class G {
public static void main(String[] args) {
String reg = "\\d{3}\\s+\\d{5}\\s+\\d{3}\\s+\\d{2}";
Pattern p1 = Pattern.compile(reg);
String u = "CQGM021R1 581 12138 460 00 41739-1 in-service ";
Matcher m1 = p1.matcher(u);
while(m1.find()){
System.out.println(m1.group());
}
}
}
运行结果:
581 12138 460 00
java中string.matcher(regex)如何指定匹配模式, 即要实现和js中的/i/m/g等等的功能
应该是想实现不管大小写的a-z和1-9的组合吧,String regex="[a-zA-Z][0-9]"即可,上面的只能识别两个字符,如果想要多个字符匹配,那么加在后面加*表示零次或者多次,加+表示一次或者多次,像上面的情况,1.如果要匹配“adfj123”就用[a-zA-Z]+[0-9]+即可;2.如果字母出现一次,数字出现很多,那么就用[a-zA-Z]([0-9])+,如“a123”;3.如果字母出现一次,数字出现0次或者多次,就用
[a-zA-Z]([0-9])*即可;4.如果字母出现0次或者多次,数字出现一次就用[a-zA-Z]*([0-9]),这些是最常用的,楼主可以看看api在java.util.regex.pattern
JAVA正则表达式,matcher.find和 matcher.matches的区别
1.find()方法是部分匹配,是查找输入串中与模式匹配的子串,如果该匹配的串有组还可以使用group()函数。
matches()是全部匹配,是将整个输入串与模式匹配,如果要验证一个输入的数据是否为数字类型或其他类型,一般要用matches()。
2.Pattern pattern= Pattern.compile(".*?,(.*)");
Matcher matcher = pattern.matcher(result);
if (matcher.find()) {
return matcher.group(1);
}
3.详解:
matches
public static boolean matches(String regex, CharSequence input)
编译给定正则表达式并尝试将给定输入与其匹配。
调用此便捷方法的形式
Pattern.matches(regex, input);
Pattern.compile(regex).matcher(input).matches() ;
如果要多次使用一种模式,编译一次后重用此模式比每次都调用此方法效率更高。
参数:
regex - 要编译的表达式
input - 要匹配的字符序列
抛出:
PatternSyntaxException - 如果表达式的语法无效
find
public boolean find()尝试查找与该模式匹配的输入序列的下一个子序列。
此方法从匹配器区域的开头开始,如果该方法的前一次调用成功了并且从那时开始匹配器没有被重置,则从以前匹配操作没有匹配的第一个字符开始。
如果匹配成功,则可以通过 start、end 和 group 方法获取更多信息。
matcher.start() 返回匹配到的子字符串在字符串中的索引位置.
matcher.end()返回匹配到的子字符串的最后一个字符在字符串中的索引位置.
matcher.group()返回匹配到的子字符串
返回:
当且仅当输入序列的子序列匹配此匹配器的模式时才返回 true。
java模式匹配的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于模式匹配例题、java模式匹配的信息别忘了在本站进行查找喔。
发布于:2022-11-23,除非注明,否则均为
原创文章,转载请注明出处。