1. 主页 > 小妙招

零基础掌握String操作:15个最常用方法+代码示例

你是不是盯着屏幕上的字符串发愁过?明明想提取用户名的前三个字母,结果截取出一堆乱码;或者处理订单号时,总有几个带着奇怪符号的数据让程序崩溃?别慌!今天咱们就像拆解乐高积木一样,把字符串操作掰碎了说清楚——这可是新手如何快速提升编程技能的必经之路!


一、给字符串"洗澡"的三板斧

新手最容易栽在用户输入上。那些看不见的空格、换行符就像藏在头发里的头皮屑,不洗干净准出事。试试这三个清洁工:

??1. trim() / strip()??
Java老哥用" 脏数据 ".trim(),Python同学用" 脏数据 ".strip(),唰的一下两边多余空格全消失。记住,这招对中间的脏东西可不管用!

??2. toLowerCase() / lower()??
用户输入"ADmin"、"AdMiN"怎么办?直接转小写:

java复制
String input = "ADmin".toLowerCase(); // 变成"admin"
python复制
input = "AdMiN".lower() # 同样变"admin"

??3. replace()??
想把手机号里的横杠去掉?看好了:

java复制
String phone = "138-1234-5678".replace("-", "");
python复制
phone = "138-1234-5678".replace("-", "")

二、字符串"分身术"必修课

想从订单号"20230815-001"里提取日期?切片操作得玩得溜:

??4. substring() / 切片??
Java选手注意索引从0开始:

java复制
String order = "20230815-001";
String date = order.substring(0, 8); // 拿到"20230815"

Python老铁用切片更直观:

python复制
order = "20230815-001"
date = order[:8]  # 冒号左边空着表示从头开始

??5. split()??
处理CSV数据必备技能:

java复制
String data = "苹果,香蕉,橘子";
String[] fruits = data.split(",");
python复制
data = "苹果|香蕉|橘子"
fruits = data.split("|")

??6. charAt() / 索引访问??
想检查第一个字符是不是字母?

java复制
if(Character.isLetter(str.charAt(0))) {...}
python复制
if str[0].isalpha(): ...

三、字符串"体检中心"

??7. length() / len()??
验证码必须6位数?先量长度:

java复制
if(code.length() != 6) {...}
python复制
if len(code) != 6: ...

??8. contains() / in??
检测敏感词就像查字典:

java复制
if(comment.contains("广告")) {...}
python复制
if "广告" in comment: ...

??9. startsWith() / endswith()??
检查文件是不是图片:

java复制
if(filename.endsWith(".jpg")) {...}
python复制
if filename.endswith(".jpg"): ...

四、常见问题急救室

??Q:为什么substring(2,5)只拿到3个字符???
A:记住这个口诀——"含头不含尾"。比如"hello".substring(1,3)其实是"el",第二个数字是截止位不是长度!

??Q:split按点分割总失败???
A:点号在正则表达式里是特殊符号,得转义:

java复制
str.split("\\.");
python复制
re.split(r'\.', str)

??Q:replace怎么同时替换多个字符???
A:链式调用走起:

java复制
str.replace("a","").replace("b","");

或者用正则表达式:

python复制
import re
re.sub(r'[ab]', '', str)

五、高阶操作不用怕

??10. format()??
拼接SQL语句别再用加号了!

java复制
String sql = String.format("SELECT * FROM %s WHERE id=%d", table, id);
python复制
sql = f"SELECT * FROM {table} WHERE id={id}"

??11. join()??
把列表变回字符串:

java复制
String.join(",", Arrays.asList("a","b")); // 输出"a,b"
python复制
",".join(["a", "b"])

??12. matches()??
手机号正则验证:

java复制
if(str.matches("1[3-9]\\d{9}")) {...}
python复制
import re
if re.match(r'^1[3-9]\d{9}$', str): ...

六、避坑指南(血泪经验)

??13. equals()别乱用??
比较内容一定要用equals()而不是==:

java复制
// 错误写法!
if(str == "hello") {...}
// 正确姿势
if("hello".equals(str)) {...}

??14. 警惕空指针??
调用方法前先检查非空:

java复制
if(str != null && !str.isEmpty()) {...}
python复制
if str and len(str)>0: ...

??15. 编码转换??
处理中文时记得指定编码:

java复制
byte[] bytes = str.getBytes("UTF-8");
python复制
bytes = str.encode('utf-8')

小编当年学字符串操作,最大的教训就是——别死记硬背!把常用方法写在便利贴上贴在显示器边框,写代码时瞟一眼就能省下半小时调试时间。最后送大家一句话:字符串处理就像切菜,刀工练熟了,做什么菜都顺手!

本文由嘻道妙招独家原创,未经允许,严禁转载