String类随笔

String类在java.lang包中,java使用String类创建字符串变量,String类是不可改变的,一旦创建了String对象,它的值就无法改变了。在java中字符串属于对象,提供String类来创建和操作字符串。
创建字符串

public static void main(String[] args){
        String str="qy97";
        System.out.println(str);
        str="love java";
        System.out.println(str);
    }

显示结果:

qy97
love java

String的构造方法

无参构造

String str=new String();

有参构造

String str=new String("qy97");
public class StringDemo {
    public static void main(String[] args){
        String str=new String("qy97");
        String str1="qy97";
        System.out.println(str);
        System.out.println(str1);
        //此处引用类型比较的是地址
        System.out.println(str==str1);
        //重写了父类Object方法equals();比较的是内容
        System.out.println(str.equals(str1));
    }
}

关于String类的一些常用方法

  1. equals(Object obj)
    public static  void fun(){
        String s="hello";
        String s1="hEllo";
        //判断字符串里面完全相等 ,区分大小写
        System.out.println(s.equals(s1));
        //不区分大小写
        System.out.println(s1.equalsIgnoreCase(s1));
    }

显示结果:

false
true
  1. toCharArray()字符串转字符数组
    public static void fun1(){
        String s="今晚老地方";
        char[] s1=s.toCharArray();
        for(int i=0;i<s1.length;i++){
            System.out.println(s1[i]);
        }
    }

显示结果:

今
晚
老
地
方
  1. getBytes() 字符串转字节数组
    public static void fun2(){
        String s="今晚老地方";
        byte[] s1=s.getBytes();
        //数组内存地址
        System.out.println(s1);
        System.out.println("=======");
        for(int i=0;i<s1.length;i++){
            System.out.println(s1[i]);
        }
    }

显示结果:

[B@107f45d
=======
-28
-69
-118
-26
-103
-102
-24
-128
-127
-27
-100
-80
-26
-106
-71
  1. indexOf(“要查找字符”)查找字符是否存在 返回int 下标 没有返回-1
    public static void fun3(){
        String s="hell.java";
        int s1=s.indexOf('h');
        System.out.println(s1);
    }

显示结果:

0
  1. contains() 判断一个字符串是否存在另一个字符串中
    public static void fun4(){
        String s="hello.java";
        boolean s1=s.contains("he");
        System.out.println(s1);
    }

显示结果:

true
  1. endsWith() 判断一个字符串的后缀
    startsWith() 判断一个字符串的前缀
    public static void fun5(){
        String s="hello.java";
        boolean s1=s.endsWith("ava");//boolean s2=s.startsWith("he");
        System.out.println(s1);
    }

显示结果:

true
  1. substring() 截取从下标为2开始后面的字符串
    public static void fun6(){
        String s="hello.java";
        String s1=s.substring(2);
        System.out.println(s1);
    }

显示结果:

llo.java
  1. length() 获取字符串的长度
    public static void fun7(){
        String string="hello.java";
        int s=string.length();
        System.out.println(s);
    }

显示结果:

10
  1. 将字符数组转换为字符串 字符数组参数不查询编码表
 public static void fun(){
        char[] ch={'a','b','c','d'};
        String s=new String(ch);
        //offset代表数组开始的索引     count代表个数
        String s1=new String(ch,1,2);
        System.out.println(s1);
    }

显示结果:

bc
  1. 字节转字符串(查询Unicode码)
 public static void fun1(){
        //调用String的构造方法  传递字节数组 
       byte[] bytes={124,50,64,74,6,31};
       String str=new String(bytes);
       System.out.println(str);
       byte[] bytes1={31,4,66,13,46};
       String s=new String(bytes1,1,3);
       System.out.println(s);
    }

显示结果:

|2@J
B

一些小练习

  1. 指定字符串在原字符串中出现的次数
    public static void fun(){
        String s = "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz";
        int k = s.indexOf("k");
        byte [] s1 = s.getBytes();
        int q = 0;
        for (int i = 0; i < s1.length; i++) {
            if(s1[i]==s1[k]){
                q++;
            }
        }
        System.out.println("k字符出现"+q+"次");
    }

显示结果:

k字符出现3
  1. 首字母大写,其他字母都小写
    public static void fun1(){
        String s="hellOwoRld";
        String s1=s.substring(0,1).toUpperCase();
        String s2=s.substring(1).toLowerCase();
        System.out.println(s1+s2);
    }

显示结果:

Helloworld
  1. 字符串中各字符的个数
    public static void fun2(){
        String s="adhsdisDSf54gasd531AKDHSDK";
        byte[] s1=s.getBytes();    // 字符串转化成字节数组
        int a=0,b=0,c=0;
        for(int i=0;i<s1.length;i++){
            if(s1[i]>=97&&s1[i]<=122){
                a++;
            }else if(s1[i]>=65&&s1[i]<=90){
                b++;
            }else if(s1[i]>=48&&s1[i]<=57){
                c++;
            }
        }
        System.out.println("小写字母的个数是:"+a+",大写字母的个数是"+b+",数字的个数是"+c);
    }

显示结果:

小写字母的个数是:12,大写字母的个数是9,数字的个数是5
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值