java小知识 接口 String类

接口

接口 jdk1.8后进行了优化

优化后可以写成员方法

1.静态方法

2.默认的方法

a.不能使用接口直接去调用 因为接口不能实例化对象

必须使用该接口的实现类的对象去调用

b.默认方法在实现类中可以重写 不强制你必须重写

c.如果想调用父类中的默认方法

可以使用 接口名.super.默认方法名

抽象类 和 接口的区别:

成员变量 :

抽象类:常量 和变量

接口:常量

成员方法 :

抽象类: 有成员方法 有抽象方法

接口: 只能有 静态成员方法 抽象方法 默认方法

构造方法 :

抽象类:有

接口: 没有

class Demo01 {
    public static void main(String[] args) {
        // 调用接口中的静态方法
        InterA.sb();
        // 调用接口中的默认成员方法
        InterA a  = new  InterImpl();
        a.defalutsb();
        //调用实现类的成员方法
        //向下转型
        InterImpl nImpl = (InterImpl)a;
         nImpl.sb1();
         InterImpl.sb();
         InterA.sb();


    }

}
interface InterA{

    public abstract void fun();

    public static void sb() {
        System.out.println("我是静态成员方法 sb");
    }
    //默认方法
    public default void defalutsb() {
        System.out.println("我是接口中默认成员方法 defaultsb");
    }
}
class InterImpl implements InterA{


    public InterImpl() {
        // TODO Auto-generated constructor stub
    }

    @Override
    public void fun() {
        // TODO Auto-generated method stub
        System.out.println("我是实现类 的抽象方法实现");
    }

    @Override
    public void defalutsb() {
         // 重写的同时 希望可以钓到接口类的默认方法
        InterA.super.defalutsb();

        System.out.println("我是实现类 defalutsb()方法");

    }
    // 实现类中定义一个成员方法
    public void  sb1() {
        InterA.super.defalutsb();
        System.out.println("我是实现类中的 成员方法 sb1()");
    }
    public static void sb() {
        System.out.println("我是实现类的静态方法 sb()");
    }

} 

String

字符串(系统提供的一个类)

如何定义一个字符串类提供的方法 的用法 学习常用方法

1.获取

根据索引获取字符串中的字符

根据字符获取字符传中位置

indexof(int ch)

indexof(int chnint, intfromIndex)

替换 切割 获取子串 转换大小写 去空格 比较

判断两个字符串相等忽略大小写

把字符数组转化为字符串

把字符串转化为字符数组

字符串类 中的一些常用方法:

//测试字符串获取位置
    public static void fun3() {
        String string = "wang,long";
        String  string1 =string.replace("long", "ning");
        String[]  string2 = string.split(",");

        System.out.println(string2.length);
        // 增强for循环  
        // 遍历 的是数组中的元素 
        // 冒号后 是要遍历的容器(数组)
        // 冒号前 表示的是 数组中的元素
        for (String str : string2) {
            System.out.println(str);

        }

    }
    //把字符数组转化为字符串
    //   把字符串转化为字符数组
    public static void fun9(){
        char[] array = new char[] {'w','a','n','g'};
        String string = new String(array);
        char[] array1=string.toCharArray();
        for(char c : array1) {
            System.out.println(c);
        }

    }
    //两字符串比较(比较 的字符的ASCII吗 相等返回0)
    public static void fun8() {
        String string = "abc";
        String string2 = "afc";

        int i =string.compareTo(string2);
        System.out.println(i);

    }
    //去空格 (去前后空格)

    public static void fun7() {
        String string = "   wang long   ";
        String string2 = string.trim();
        System.out.println(string2);
    }
    // 判断字符串相等(忽略大小写)
    public static  void fun6() {
        String string1 = "wanglong";
        String string2 = "WANGLONG";
        boolean b =string1.equalsIgnoreCase(string2);
        System.out.println(b);
    }
    // 转换大小写(出现率较高)

    public static void fun5() {
        String string = "wanglong";
        String string2 =string.toUpperCase();
        System.out.println(string2);
        String string3 = string2.toLowerCase();
        System.out.println(string3);
    }
    public static  void  fun4() {
        String string  = "wanglong";
        // 留头 不留尾 [2,5)(出现率比较高)
        String string2 = string.substring(2,5);
        System.out.println(string2);
    }
    public static void fun1() {
        //字符串相当于字符数组
        String string ="wanglang";
        int index = string.indexOf("a");
        System.out.println(index);
        //参数二 从哪一位开始查找
        int index2=string.indexOf('g',4);
        System.out.println(index2);

        int  index5 =string.indexOf("n");
        System.out.println(index5);
        int index3 = string.lastIndexOf('g');
        System.out.println(index3);
        int index4= string.lastIndexOf('g',5);
        System.out.println(index4);
        char ch = string.charAt(5);
        System.out.println(ch);


    }
    public  static void fun2() {
        String string ="www.baidu.com";
        Boolean boolean3 = string.contains("baidu");//是否包含baidu
        Boolean boolean4 = string.startsWith("www");//是否以www开始
        Boolean boolean5 = string.endsWith("com");//是否以com结束
        System.out.println(boolean3);
        System.out.println(boolean4);
        System.out.println(boolean5);
    }

例题

将 字符串 ” abc def ” 将字符串中前后空格去掉

两个方法

public static void main(String[] args) {

        String string = "   abc def   ";
        char[]  array = string.toCharArray();
        char[] array1;
        int st =0;
        int end = string.length()-1;
        for(int i = 0;i<array.length&&st<end;i++) {
            if(array[i]!=' ') {
                st =i;
                break;
            }


        }
        for(int i = array.length-1;i>=0;i--) {
            if(array[i]!=' ') {
                end =i;
                break;
            }


        }
        String string2 =string.substring(st,end+1);
        System.out.println(string2);



        String string3 = "   abc def   ";
        int start = 0;
        int end1 = string.length()-1;
        // 一位一位的查看 该位置空格的话  就让开始坐标++
        while(string.charAt(start)==' '&& start<end1) {
            start++;
        }
        while(string.charAt(end1)==' '&& start<end1) {
            end1--;

        }
        String newStr = string.substring(start,end1+1);
        System.out.println(newStr);

    }

将字符串 ” abc def” 反转

    String string = "    abc def";
        char[] array = string.toCharArray();
        char temp;
        for (int i = 0; i <string.length()/2; i++) {
            temp=array[i];
            array[i]=array[string.length()-i-1];
            array[string.length()-i-1]=temp;

        }
        //字符数组转换化位字符串
        String string2=new String(array);
        System.out.println(string2);

计算 wwwasdwwwdlaskwwwalkjasdwwwda;

www的次数

String string ="wwwasdwwdlaskwwalkjasdwwda";
        int num = 0;
        String k = "www";

        for(int i=0;i<string.length()-1&&i+k.length()<string.length()-1;i++) {
            if(string.substring(i,i+k.length()).equals(k)) {//判断是否指定值与子字符串的值相等
                //每次截取字符串 计数
                num++;
            }
        }
        System.out.println(num);
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值