Java/JavaScript/Python字符串常用方法
Java/JavaScript/Python字符串常用方法
Java | JavaScript | Python | |
其他类型转为字符串 | String.valueOf(3.14)/s+"" | String(3.14)/3.14.toString()/s+"" | str(3.14) |
比较字符串是否相等 | s1.equals(s2) | s1 === s2 | s1 == s2 |
字符串长度 | s.length() | s.length | len(s) |
字符串拼接 | s1.concat(s2)/s1 + s2 | s1.concat(s2)/s1 + s2 | s1 + s2 |
指定索引的字符 | s.charAt(3) | s.charAt(3)/s[3] | s[3] |
指定字符串的索引 | s.indexOf("a") | s.indexOf("a") | s.index("a") |
截取、切片 | s.substring(2, 5) | s.substring(2, 5)/s.substr(2, 5) | s[2: 5] |
替换字符 | s.replace("a", "b") | s.replace("a", "b") | s.replace('a', 'b') |
转换为字符数组 | s.toCharArray() | s.split("") | list(s) |
转换为字节数组 | s.getByte() | ||
按字符分割成数组 | s.split("a") | s.split("a") | s.split("a") |
所有字符转换成大写 | s.toUpperCase() | s.toUpperCase() | s.upper() |
所有字符转换成小写 | s.toLowerCase() | s.toUpperCase() | s.lower() |
是否以某字符串开始 | s.startsWith("He") | s.startsWith("He") | s.startswith("He") |
是否以某字符串结束 | s.endsWith("o") | s.endsWith("o") | s.endswith("o") |
注意事项:
- 其他类型转为字符串:java: String.valueOf(data)方法重载可传入任意基本数据类型及字符数组,但不能不传值,也不能传null。js: null和undefined 不能使用 toString()方法;
- 比较字符串是否相等:java: 的字符串是引用数据类型,是String类的实例对象,==运算符比较的是字符串的内存地址,对于new构造出来的字符串不可用。s1.equals(s2)才是比较的是字符串内容;js: ===比较时不会自动转换数据类型,如果数据类型不一致,直接返回
false;
- 指定字符串的索引:所有操作均返回第一次出现的索引,不存则在返回-1;
- 截取、切片:s.substring(start, end)和s[start: end]为左闭右开,即包含左索引不包含右索引,如果不传end则截到末尾;js s.substr(start, length) 起始索引截取长度(如果忽略则截取到末尾);
- 替换字符:所有操作都是返回替换后的字符串,不会修改原字符串,需要接收操作;
- 转换为字符数组:三种语言都可以用s.split("")实现;
- 按字符分割成数组,s.split("s", limit), limit可选,即分割次数,假设传入n,java: 前面n-1次为正常分割项,第n项为字符串剩余部分,js:正常分割n项,后面丢弃;python: 前面n次为正常分割项,第n+1项为字符串剩余部分;
https://www.runoob.com/java/java-string.html
https://www.runoob.com/js/js-strings.html
https://www.runoob.com/python3/python3-string.html