「java模式匹配」模式匹配例题

博主:adminadmin 2022-11-23 04:29:06 64

本篇文章给大家谈谈java模式匹配,以及模式匹配例题对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

编写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模式匹配的信息别忘了在本站进行查找喔。

The End

发布于:2022-11-23,除非注明,否则均为首码项目网原创文章,转载请注明出处。