String-related problems often appear in interview questions. In actual development, strings are also frequently used. Summarized here are common uses of strings in C++, Java, and Python.
s1 = str() # in python, `''` and `""` are the same s2 = "shaunwei" # 'shaunwei' s2len = len(s2) # last 3 chars s2[-3:] # wei s2[5:8] # wei s3 = s2[:5] # shaun s3 += 'wei' # return 'shaunwei' # list in python is same as ArrayList in java s2list = list(s3) # string at index 4 s2 # 'n' # find index at first s2.index('w') # return 5, if not found, throw ValueError s2.find('w') # return 5, if not found, return -1
In Python, there's no StringBuffer or StringBuilder. However, string manipulations are fairly efficient already.
String s1 = new String(); String s2 = "billryan"; int s2Len = s2.length(); s2.substring(4, 8); // return "ryan" StringBuilder s3 = new StringBuilder(s2.substring(4, 8)); s3.append("bill"); String s2New = s3.toString(); // return "ryanbill" // convert String to char array char s2Char = s2.toCharArray(); // char at index 4 char ch = s2.charAt(4); // return 'r' // find index at first int index = s2.indexOf('r'); // return 4. if not found, return -1
The difference between StringBuffer and StringBuilder is that the former guarantees thread safety. In a single-threaded environment, StringBuilder is more efficient.