示例:

输入: ["flower","flow","flight"]
输出: "fl"

解析:以第一个字符串去匹配后面的,不断截取,直到符合要求

class Solution {
    public String longestCommonPrefix(String[] strs) {
        if(strs.length == 0){
            return "";
        }
        String str = strs[0];
        for(int i=1;i<strs.length;i++){
            while(strs[i].indexOf(str) != 0){//indexOf,找到包含str就返回起始索引。没找到就返回-1。因为是前缀,所以应该返回0
                str = str.substring(0,str.length()-1);//截取0到str.length-1的字符串
            }
        }
        return str;

    }
}

String类的substring()方法

截取字符串,在java语言中的用法

1、 public String substring(int beginIndex)

返回一个新字符串,它是此字符串的一个子字符串。该子字符串始于指定索引处的字符,一直到此字符串末尾。

参数:beginIndex - 开始处的索引(包括),

返回:指定的子字符串,

异常:如果 beginIndex 为负或大于此 String 对象的长度,则抛出IndexOutOfBoundsException

例 :"unhappy".substring(2) returns"happy"

   "mybaby".substring(3) returns"aby"

2、public String substring(int beginIndex, int endIndex)

返回一个新字符串,它是此字符串的一个子字符串。该子字符串从指定的 beginIndex 处开始, endIndex:到指定的 endIndex-1处结束。

参数:beginIndex - 开始处的索引(包括)
endindex 结尾处索引(不包括)。

返回:指定的子字符串。
抛出:如果 beginIndex 为负,或length大于字符串长度,则抛出IndexOutOfBoundsException
例:"hamburger".substring(3,8) returns "burge"
  "smiles".substring(0,5) returns "smile"

java中String.indexOf()用法

查找指定字符或字符串在字符串中第一次出现地方的索引,未找到的情况返回 -1.

例如

String.indexOf(String str)

String str1="012345";
String str2="23";
System.out.println( str1.indexOf(str2) );
输出结果:2。

重载方法有

String.indexOf(String str,int index)

从index的地方开始找,返回第一次出现的索引

String str1="012345012345";
String str2="23";
System.out.println( str1.indexOf(str2,5) );

输出结果:8.