本文共 4235 字,大约阅读时间需要 14 分钟。
因为对Python很熟悉,看着Java的各种字符串操作就不自觉的代入Python的实现方法上,于是就将Java实现方式与Python实现方式都写下来了。
先说一下总结,Java的字符串类String本身定义了一些简单的字符串操作,
字符串常用操作有:
下面开始:
1.取某一字符第一次出现/最后一次出现的索引
JAVA | Python |
1 public class Test {2 public static void main(String args[]){3 String s = "Hello,World.";4 System.out.println(s.indexOf("e"));5 System.out.println(s.lastIndexOf("l"));6 }7 }
|
1 #!/usr/bin/env python2 # -*-coding:utf-8-*-3 a = "HelloWorld"4 print a.find("l")5 print a.rfind("l")
|
解释:
Java和Python中的字符串内容查找类似,都是直接使用字符串的内置方法。
其实根本原因是这两种语言中字符串都是一个实例化的类。
Java中的indexOf(str)与latsIndexOf(str)
Python中的find(str)与rfind(str)。
2. 取字符串某一位置的字符
Java | Python |
1 public class Test {2 public static void main(String args[]){3 String s = "Hello,World.";4 System.out.println(s.charAt(4));5 }6 }
| 1 #!/usr/bin/env python2 # -*-coding:utf-8-*-3 a = "HelloWorld"4 print a[5]
|
解释:
Java使用字符串自带的方法charAt(index)
Python使用 切片方法,直接通过索引将字符串截取出来,或者说就像取数组中的某个值一样直接取出来。
其实写到这里越来越体会到Python的优雅和简洁。
3. 字符串截取
Java | Python |
1 public class Test {2 public static void main(String args[]){3 String s = "Hello,World.";4 System.out.println(s.substring(2,5));5 }6 }
| 1 #!/usr/bin/env python2 # -*-coding:utf-8-*-3 a = "HelloWorld"4 print a[1:3]5 print a[1:]6 print a[:]7 print a[-1:]
|
解释:
字符串截取的过程就是将原字符串的一部分复制出来。
Java使用方法substring(indexbegin,indexend)来截取字符串。
Python仍然使用字符串切片的方法,各种花式截取。
其实Java如果真的想处理复杂字符串,一个是用正则,一个是将字符串split分割后处理数组。当处理数组时候和python就很类似了。
觉得这里Python真的吊打Java了。好了不应该说这些的,这篇文章又不是比较两个语言的优劣。
4.去除首尾空格
Java | Python |
1 public class Test {2 public static void main(String args[]){3 String s = " Hello,World ";4 System.out.println(s.trim());5 }6 }
| 1 #!/usr/bin/env python2 # -*-coding:utf-8-*-3 a = " HelloWorld "4 b = " HelloWrold\n"5 print a.strip(" ")6 print b.strip("\n")
|
Java直接调用字符串方法trim(),去除首尾空格。
Python类似,使用strip()方法,但是支持按输入的参数去除。
5. 字符串替换
Java | Python |
1 public class Test {2 public static void main(String args[]){3 String s = "Hello,World ";4 System.out.println(s.replace("e","a"));5 }6 }
| 1 #!/usr/bin/env python2 # -*-coding:utf-8-*-3 import re4 a = "HelloWorld "5 b = "HelloWrold"6 print a.replace("l","")7 print re.sub("l","",a)
|
Java使用字符串方法replace
Python也可以使用replace方法。或者使用re模块。
6. 判断字符串相等
Java | Python |
1 public class Test { 2 public static void main(String args[]){ 3 String str1 = "Hello,World"; 4 String str2 = "Hello,World"; 5 String str3 = new String("Hello,World"); 6 String str4 = str3; 7 System.out.println("str1 equals str2:"+str1.equals(str2)); 8 System.out.println("str1 == str2:"+(str1 == str2)); 9 System.out.println("str2 equals str3:"+str2.equals(str3 ));10 System.out.println("str2 == str3:"+(str2==str3));11 System.out.println("str3 equals str4:"+str3.equals(str4));12 System.out.println("str3 == str4:"+(str3==str4));13 }14 } 1 str1 equals str2:true2 str1 == str2:true3 str2 equals str3:true4 str2 == str3:false5 str3 equals str4:true6 str3 == str4:true
| 1 a = "HelloWorld"2 b = "HelloWorld"3 print (a==b)4 print (a is b) TrueTrue
|
Java中其实这一段有的说的。
equals()方法比较对象的内容,"=="比较是否是同一个对象。
内容上,str1=str2=str3=str4没得说。但是str1和str2是同一个对象,str3和str4是同一个对象。str2和str3并不是同一个对象。
这里就涉及到Java的引用与对象创建的问题,下一期在详细讨论。
7. 大小写转换
Java | Python |
1 public class Test {2 public static void main(String args[]){3 String str1 = new String("Hello,World"); 4 System.out.println(str1.toUpperCase());5 System.out.println(str1.toLowerCase());6 }7 }
| 1 a = "helloworld"2 print (a.capitalize())3 print (a.lower())4 print (a.upper())
|
Java和Python都使用了字符串内置方法进行大小写转换。
不过Python多了一个capitalize()方法进行首字母大写的处理。Java的话需要自己写一个方法去实现。
字符串常见操作就是这些,都是String类自带的方法。
indexOf(char),lastIndexOf(char)搜索字符的位置;
charAt(index)按索引取字符;
substring(begin,end)按索引截取子串;
trim()去除首尾空格;
replace(charA,charB)将所有charA替换为charB
equals(charA)判断是否与charA相等。==用来判断两个对象是否是同一个。
下一篇就Java的引用与对象做个研究。然后谈到了引用与对象就要说一下Java的堆与栈空间。
转载地址:https://www.cnblogs.com/lijianyang/p/7042198.html 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!