题目
只需要每次从第一个String前取前面n个(n从最长string到最短),对比其余每个字符串是否含有即可。
运用学习的函数:
JAVA实现
class Solution {
public String longestCommonPrefix(String[] strs) {
int n=strs.length;//有几个String
if(n==0)
return "";
if(n==1)
return strs[0];
int len=strs[0].length();//strs[0]的长度
String result="";
for(;len>=0;len--){
int flag=1;
for(int i=1;i<n;i++){
if(!strs[i].startsWith(strs[0].substring(0,len),0))
flag=0;
}
if(flag==1)
return strs[0].substring(0,len);
}
return "";
}
};
所学知识汇总
(https://www.cnblogs.com/zsswpb/p/6329417.html)
Java的基本类型和包装类型
一、Java基本类型
Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。
1、整数:包括int,short,byte,long ,初始值为0
2、浮点型:float,double ,初始值为0.0
3、字符:char ,初始值为空格,即'' ",如果输出,在Console上是看不到效果的。
4、布尔:boolean ,初始值为false
二、包装类
包装类把基本类型转换为对象,每个基本类型在java.lang包中都有一个相应的包装类
包装类型: Integer 、Long、Short、Byte、Character、Double、Float、Boolean、BigInteger、BigDecmail
其中BigInteger、BigDecimal没有相对应的基本类型,主要应用于高精度的运算,BigInteger 支持任意精度的整数,BigDecimal支持任意精度带小数点的运算,主要用于金钱的计算上。
三、包装类型的作用3.1提供以下列使用的方法
3.2集合不允许存放基本数据类型数据,存放数字时,要用包装类型
四、基本类型和包装类的异同4.1 在Java中,一切皆对象,但八大基本类型却不是对象。
4.2声明方式的不同,基本类型无需通过new关键字来创建,而封装类型需new关键字。
4.3存储方式及位置的不同,基本类型是直接存储变量的值保存在堆栈中能高效的存取,封装类型需要通过引用指向实例,具体的实例保存在堆中。
4.4初始值的不同,封装类型的初始值为null,基本类型的的初始值视具体的类型而定,
比如int类型的初始值为0,boolean类型为false;
4.5使用方式的不同:如与集合类合作使用时只能使用包装类型。
String s1 = new String("0123456789"); String s2 = new String("1234567"); String s3 = new String(" 123 4 567 "); String s4 = new String("1a2B 3Cd/"); System.out.println(s1.substring(2)); //1、从下标2处开始输出到结束 System.out.println(s1.substring(2,4)); //2、从下标2处开始输出到4之前 System.out.println(s1.indexOf('4')); //3、从头开始搜索4,若找到则返回位置下标 ,找不到则返回-1 System.out.println(s1.indexOf('4',2)); //4、从下标为2开始搜索4,若找到则返回位置下标 ,找不到则返回-1 //因为该函数只返回第一个找到的位置,因此可结合3、4两条寻找多个 System.out.println(s1.startsWith("01")); //5、判断字符串是否以“01”开头 System.out.println(s1.endsWith("89")); //6、判断字符串是否以“89”开头 System.out.println(s1.startsWith(s2,1)); //7、判断字符串s1从1位置开始的字符串是否含有s2 System.out.println(s3.trim()); //8、删除s3两边的空格 System.out.println(s3.replace("12","!!")); //9、将s3中所有"12"替换成"!!" System.out.println(s4.toUpperCase()); //10、将s4中所有小写替换成大写,反之用s4.toLowerCase()
结果:
另:以上所有操作均不改变其本身的值,相当于新建复制并操作在复制String上