编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。
public class Solution {
public String longestCommonPrefix(String [] strs){
//字符数组长度为0返回空
if (strs.length==0){
return "";
}
//将第一个字符串取出来与每一个字符串比较
String ans=strs[0];
for (int i=0;i<strs.length;i++){
int j=0;
for (;j<ans.length()&&j<strs.length;j++){
if (ans.charAt(j)!=strs[i].charAt(j)){//charAt()可以直接对字符串使用,可以带参数
break;
}
}
ans=ans.substring(0,j);//在ans中截取相同的字符
if (ans.equals("")) //没有相同的字符
return ans; // ans=ans.substring(0,j) 值为"";
}
return ans;
}
indexOf方法,返回String对象内第一次出现字符串的位置。
public class S2 {
public String longestCommonPrefix2(String[] strs){
if (strs.length==0) return "";
String pre=strs[0];
for (int i=1;i<strs.length;i++){
while(strs[i].indexOf(pre)!=0){ //pre第一次在strs[i]里出现的位置不是0,pre=aa,strs[i]=ab
pre=pre.substring(0,pre.length()-1);//pre删除最后一个字符
if (pre.isEmpty())return "";
}
}
return pre;
}