零基础掌握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')
小编当年学字符串操作,最大的教训就是——别死记硬背!把常用方法写在便利贴上贴在显示器边框,写代码时瞟一眼就能省下半小时调试时间。最后送大家一句话:字符串处理就像切菜,刀工练熟了,做什么菜都顺手!
本文由嘻道妙招独家原创,未经允许,严禁转载