常用String字符串操作方法:
https://blog.youkuaiyun.com/sinat_32194985/article/details/80349501
面试实例1:
实现一个public int indexOf(String mainStr,String subStr)方法,返回主串mainStr中首次出现子串subStr的位置,比如,主串是abcacb,子串是ac,返回值则是3(从0开始)
public int indexOf(String mainStr, String subStr) {
return mainStr.indexOf(subStr);
}
面试实例2:
字符串“abcde”通过写一个函数不让调用第三方的字符串,实现一个字符串倒序,比如字符串“abcde” 变成“edcba”
String src = "abcde";
String dst = new StringBuffer(src).reverse().toString();
面试实例3:
写一个方法来判断一个String是否是回文(顺读和倒读都一样的词)?
分析:回文就是正反都一样的词,如果需要判断是否是回文,只需要比较正反是否相等即可。String类并没有提供反转方法供我们使用,但StringBuffer和StringBuilder有reverse方法。
private static boolean isPalindrome(String str) {
if (str == null)
return false;
StringBuilder strBuilder = new StringBuilder(str);
strBuilder.reverse();
return strBuilder.toString().equals(str);
}
拓展:假设面试官让你不使用任何其他类来实现的话,我们只需要首尾一一对比就知道是不是回文了。
private static boolean isPalindromeString(String str) {
if (str == null)
return false;
int length = str.length();
System.out.println(length / 2);
for (int i = 0; i < length / 2; i++) {
if (str.charAt(i) != str.charAt(length - i - 1))
return false;
}
return true;
}
String中"=="与equals()的区别:
https://blog.youkuaiyun.com/cjm2484836553/article/details/105119934/
String、StringBuffer、StringBuilder区别:
String:字符串常量 不适用于经常要改变值得情况,每次改变相当于生成一个新的对象
StringBuffer:字符串变量 (线程安全)
StringBuilder:字符串变量(线程不安全) 确保单线程下可用,效率略高于StringBuffer
详细见:
https://www.shiqidu.com/d/763 链接中的问题5
相关文章推荐:https://blog.youkuaiyun.com/yissan/article/details/78740674