String

String

特点

1、程序当中所有双引号字符串都是String类的对象。(即使没有new也是)

2、字符串的内容不可改变,即是(常量)。

3、字符串是可以共享使用的。

4、字符串效果上相当于是char[]字符数组,但底层原理是byte[]字节数组。

3+1种创建字符串

三种构造方法

public String();

public String(Char[] array);根据字符数组的内容来创建对应的字符串。

public String(byte[] array); 根据字节数组的内容来创建对应的字符串。

例如:byte[] bytearray={97,98,99};

String str = new String (bytearray);

直接创建

String str=“hello”;

关于比较

1、双引号直接创建的字符串在堆中的字符串常量池中,new出来的在堆中但不在字符串常量池中。

2、引用类型的比较“==”只能用来比较地址值。要用equals来比较内容。

3、equals具有对称性,推荐使用“abc”.equals(str1)。(str1.equals(“abc”)形式可能会出现空指针异常)

4、equalsIgnoreCase(String str),忽略大小写比较内容。

与获取相关

length();

concat(String str);拼接字符串

charAt(int index);获取制定位置的首个字符

indexof (String str);查找参数字符串在本字符串中首次出现的索引位置,没有则返回-1;

关于截取

public String subString(int index);截取参数位置到末尾的字符串

public String subString(int begin, int end);开始到末尾的字符串[);

关于转换

public char[] toCharArray();将当前字符串拆分成为字符数组作为返回值

public byte[] getBytes();获得当前字符串底层字节数组

public String replace(CharSequence oldString,CharSequence newString);将出现的老字符串替换成新的字符串,返回替换后结果。

关于分割

public String[] split(String regex);

例:String str1=“aaa,bbb,ccc”;

String[] array1=str1.split(",");以,为规则

小demo练习

1、定义一个方法:把数组{1,2,3}按照制定格式拼接成一个字符串,格式参照如下:{word1#word2#word3}

public class Demo1 {
    //定义一个方法:把数组{1,2,3}按照制定格式拼接成一个字符串,格式参照如下:{word1#word2#word3}
    public static void main(String[] args) {
        char[] array = new char[3];
        array[0] = '1';
        array[1] = '2';
        array[2] = '3';
        String str1 = new String(array);
        String str = "word";
        String str2=new String();
            str2 = str.concat(str1.substring(0, 1)).concat("#").
                    concat(str).concat(str1.substring(1,2)).concat("#").
                    concat(str).concat(str1.substring(2,3));
        System.out.println(str2);
    }
}

2、键盘输入一个字符串,并且统计其中各字符串出现的次数种类:大写字母,小写字母,数字,其他。

package com.string;

import java.util.Scanner;
public class Demo2 {
    //键盘输入一个字符串,并且统计其中各字符串出现的次数种类:大写字母,小写字母,数字,其他。
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入字符串:");
        String str=scanner.next();
        byte[] b1=new byte[str.length()];
        b1=str.getBytes();
        int numbig=0;
        int numsmall=0;
        int num=0;
        for (int i = 0; i < str.length(); i++) {
            if(b1[i]<123&&b1[i]>=97){
                numsmall++;
            }
            if(b1[i]<91&&b1[i]>=65){
                numbig++;
            }
            if(b1[i]<58&&b1[i]>=48){
                num++;
            }
        }
        System.out.println("大写字母有"+numbig+",小写字母有"+numsmall+"数字有"+num);
        /*
        GHSBcsdjSKJSA9238das
        大写字母有9,小写字母有7数字有4
         */
    }


}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

缘夏520

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值