2018.12.7——第十一天

题目

只需要每次从第一个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上

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值