对于字符串的面试题多以string的特征为主,比如 string的赋值,stringbuffer和stringbuilder的区别,编程比较少。
字符串的常用的基本方法如下:
1、获取字符串的长度
length()
2 、判断字符串的前缀或后缀与已知字符串是否相同
前缀 startsWith(String s)
后缀 endsWith(String s)
3、比较两个字符串
equals(String s)
4、把字符串转化为相应的数值
int型 Integer.parseInt(字符串)
long型 Long.parseLong(字符串)
float型 Folat.valueOf(字符串).floatValue()
double型 Double.valueOf(字符串).doubleValue()
4、将数值转化为字符串
valueOf(数值)
5、字符串检索
indexOf(Srting s) 从头开始检索
indexOf(String s ,int startpoint) 从startpoint处开始检索
如果没有检索到,将返回-1
6、得到字符串的子字符串
substring(int startpoint) 从startpoint处开始获取
substring(int start,int end) 从start到end中间的字符
7、替换字符串中的字符,去掉字符串前后空格
replace(char old,char new) 用new替换old
trim()
8、分析字符串
StringTokenizer(String s) 构造一个分析器,使用默认分隔字符(空格,换行,回车,Tab,进纸符)
StringTokenizer(String s,String delim) delim是自己定义的分隔符
nextToken() 逐个获取字符串中的语言符号
boolean hasMoreTokens() 只要字符串还有语言符号将返回true,否则返回false
countTokens() 得到一共有多少个语言符号
String s1 = "anbdbcvnfjdalfjdalfjadlefj";
String s2 = "uroequrebcvnfurjadleqo";
// 分出长短
String shortStr = s1.length()>s2.length()?s2:s1;
String longStr = s1.length()>s2.length()?s1:s2;
boolean isFind = false;
// 遍历短的字符串所有的子串
for(int i=shortStr.length(); i>0; i--) {
// 每次循环截取长度为i的子串
for(int j=0; j<shortStr.length()-i+1 ; j++) {
// j 截取子串时的开始位置
String subStr = shortStr.substring(j, j+i); // j 3 i 4 (3,7)
// 每个子串都需要判断是否为长字符串的子串
boolean b = longStr.contains(subStr);
if(b) {
// 找到了
System.out.println("最大子串为:" + subStr);
isFind = true;
}
}
if(isFind)
break;
}
}