当前位置: 代码网 > it编程>编程语言>Java > Java学习字符串之方法返回、跳出嵌套循环及正则表达式

Java学习字符串之方法返回、跳出嵌套循环及正则表达式

2026年03月03日 Java 我要评论
字符串字符串(均可以查看api帮助文档查找更多方法):stringstring(字符串不可变,若修改就会new出一个新对象)查(int型)length()返回字符串长度(char型)charat(in

字符串

字符串(均可以查看api帮助文档查找更多方法):

string

string(字符串不可变,若修改就会new出一个新对象)

(int型)length() 返回字符串长度

(char型)charat(int index) 取指定索引的字符(索引从 0 开始)

(boolean型)contains(charsequence s) 判断是否包含指定子串

(boolean型)starswith(string prefix)/endswith(string suffix) 判断开头 / 结尾

(boolean型)equals(object obj)内容相等判断(别用 ==,因为 == 对引用类型比较的是内存地址,而new出来的字符串即使内容相同,也会是不同的对象,地址不同)

(boolean型) equalsignorecase(string another) 忽略大小写比较内容

(boolean型) isempty() 判断是否为空字符串

(string型)substring(int beginindex) 从beginindex(开始索引)截取到末尾

(string型)substring(int beginindex, int endindex) 左闭右开,含头不含尾截取字符串

(string [])split(string regex) 按正则拆分字符串,用 “正则表达式” 作为分隔符,把一个大字符串拆分成多个小字符串,存到数组里。

string str = "a, b; c|d";
string[] result = str.split("[,;|]");
// 正则 [,;|] 表示“逗号、分号、竖线中的任意一个”
// 结果是 ["a", " b", " c", "d"] → 按这几个符号把字符串拆成了4部分

(string型)replace(charsequence old, charsequence new) 全量替换(不支持正则)返回替换后的新字符串

string str = "a1b1c1";
string result = str.replace("1", "x");
// 结果是 "axbxcx" → 所有的"1"都被替换成了"x"

(string型)replaceall(string regex, string replacement) 正则替换,返回正则替换后的新字符串

string str = "a1b22c333";
string result = str.replaceall("\\d+", "x");
// 正则 \\d+ 表示“一个或多个数字”
// 结果是 "axbxcx" → 不管是1位、2位还是3位数字,都被替换成了"x"

(string型)tolowercase()/touppercase() 转小写 / 大写

(string型)valueof(任意类型) 静态方法,把其他类型转字符串

参数写法能接收的类型
charsequence sstring、stringbuilder 等
string prefix只能是 string
object obj任意类型(string、integer 等)

stringbuilder

可变字符序列,单线程场景首选,效率高,无线程安全保障核心是直接修改本身,不生成新对象,适合频繁拼接 / 修改

构造容器:stringbuilder()/stringbuilder(string init)

append(任意类型) 拼接

insert(int offset, 任意类型) 指定位置(索引)插入内容

delete(int start, int end) 删除指定区间字符(左闭右开)

replace(int start, int end, string str):替换指定区间(左闭右开)

reverse() 字符串反转

tostring() 转为 string 类型

可以链式调用

stringjoiner

解决带分隔符拼接(如 a,b,c),无需手动处理首尾分隔符

构造容器:

stringjoiner(分隔符) 仅指定分隔符

stringjoiner(分隔符, 前缀, 后缀):带前后缀

add(string str) 添加单个元素

merge(stringjoiner other) 合并另一个 stringjoiner,other容器放在调用该方法容器的后面

tostring() 转为string类型

可以链式调用

方法返回

在写函数时,如果要返回多个数据,可以把这些数据放在一个容器中(集合,数组),再把容器返回

跳出嵌套循环

在循环执行过程中,如果有循环嵌套,break无法跳出我们想要的循环,就可以在循环体(while,for,switch)前面加上一个标识符和一个冒号(符合标识符命名规范即可,循环就可以叫loop),在break那里,改为break 标识符(break loop;)

当然main方法也是一个线程,我在需要跳出循环处结束main方法这个主线程也可以,因此,把break;替换成return; return 0;正常状态结束,其他数字表示异常状态结束

当然还可以用system.exit(0);来跳出这个虚拟机的运行。

三者前者是跳出标识符运行的线程(后续如果有代码,依然可以运行),中者是跳出main函数,主线程结束,后者是跳出整个java虚拟机,整个程序立刻结束

正则表达式

基础匹配符

符号含义示例
.匹配任意单个字符(除了换行符)a.c 匹配 abca1ca c
[]匹配方括号内的任意一个字符[abc] 匹配 ab 或 c
[^]匹配不在方括号内的任意一个字符[^abc] 匹配除 abc 之外的字符
-在[]中表示范围[a-z] 匹配小写字母,[0-9] 匹配数字

预定义字符集

符号含义
\d匹配数字(等价于 [0-9]
\d匹配非数字(等价于 [^0-9]
\w匹配字母、数字、下划线(等价于 [a-za-z0-9_]
\w匹配非字母、数字、下划线
\s匹配空白字符(空格、制表符、换行等)
\s匹配非空白字符

数量限定符

用来指定前面的字符或组要出现多少次

符号含义示例
*匹配 0 次或多次a* 匹配 ""aaaaaa...
+匹配 1 次或多次a+ 匹配 aaaaaa...
?匹配 0 次或 1 次a? 匹配 "" 或 a
{n}精确匹配 n 次a{3} 匹配 aaa
{n,}匹配至少 n 次a{2,} 匹配 aaaaa...
{n,m}匹配 n 到 m 次a{2,4} 匹配 aaaaaaaaa

边界匹配符

用来定位字符串的位置,不匹配任何字符

符号含义示例
^匹配字符串的开头^abc 匹配以 abc 开头的字符串
$匹配字符串的结尾abc$ 匹配以 abc 结尾的字符串
\b匹配单词边界(比如空格、标点)\bcat\b 匹配独立的 cat,不匹配 category 里的 cat

逻辑与分组

符号含义示例
()分组,把多个字符当作一个整体处理(ab)+ 匹配 abababababab...
``或,匹配左右任意一个表达式`ab匹配ab`
\num引用第 num 个分组的内容(反向引用)(a)\1 匹配 aa

转义字符

如果想匹配 .*( 这类有特殊含义的符号,需要在前面加 \ 进行转义。匹配小数点 . 要写成 \.;匹配星号 * 要写成 \*

常见示例

匹配手机号^1[3-9]\\d{9}$
匹配邮箱^[a-za-z0-9_.-]+@[a-za-z0-9-]+(\\.[a-za-z0-9-]+)*$
匹配 url^https?://[\\w-]+(\\.[\\w-]+)+(/[\\w-./?%&=]*)?$

匹配18 位身份证

^[1-9]\\d{5}(18|19|20)\\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\\d|3[01])\\d{3}([0-9xx])$

使用方法

场景代码实例
验证格式string regex = "你的正则"; boolean legal = 目标字符串.matches(regex);
替换内容string result = 目标字符串.replaceall("你的正则", "替换后的内容");
拆分字符串string[] arr = 目标字符串.split("你的正则");
提取内容pattern p = pattern.compile("你的正则"); matcher m = p.matcher(目标字符串); while(m.find()) { system.out.println(m.group()); }

总结 

到此这篇关于java学习字符串之方法返回、跳出嵌套循环及正则表达式的文章就介绍到这了,更多相关java字符串方法返回、跳出嵌套循环及正则内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com