java基础(9)(String类,构造方法及使用,字符串比较,字符串获取,字符串转换,分给去空格,字符串截取拼接小练习)

String

概念

public final class String
    extends Objectimplements Serializable, Comparable<String>, CharSequence
String 类代表字符串。Java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例实现。 
字符串是常量;它们的值在创建之后不能更改。字符串缓冲区支持可变的字符串。
因为 String 对象是不可变的,所以可以共享。

特点

  1. 字符串不变:字符串的值在创建后不能被更改
  2. 因为String对象是不变的,所以它们可以被共享
  3. String的本质:JDK1.8之前是char[]数组;JDK1.8之后是byte[]

构造方法

 public String():            创建了一个空白的字符串
 public String(char[] array):根据char数组创建字符串对象
 public String(byte[] array):根据byte数组创建字符串对象
 public String(char[] value, int offset, int count): 将char数组的一部分转换成字符串对象
 public String(byte[] bytes, int offset, int length) :将byte数组的一部分转换成字符串对象

常用方法

字符串比较相关方法

package string.字符串的比较相关方法;

/**
 * @Describe
 * @Author Double LiFly
 * @date 2021/4/16 12:07
 */
public class StringEquals {
    public static void main(String[] args) {
        /**
         * >* public boolean equals (Object anObject) :将此字符串与指定对象进行比较
         * >* public boolean equalsIgnoreCase(String anotherString) : 将此字符串与指定对象进行比较,忽略大小写
         * >* public boolean endsWith(String suffix): 判断此字符串是否以指定的后缀开始
         * >* public boolean startsWith(String prefix): 判断此字符串是否以指定的前缀开始 :
         */
        String str = "abc";
        String str1 = "abc";
        String str2 = "ABC";

        //public boolean equals (Object anObject) :将此字符串与指定对象进行比较
        System.out.println(str.equals(str1));//true
        System.out.println(str.equals(str2));//false

        //public boolean equalsIgnoreCase(String anotherString) : 将此字符串与指定对象进行比较,忽略大小写
        System.out.println(str.equalsIgnoreCase(str1));//true
        System.out.println(str.equalsIgnoreCase(str2));//true

        //public boolean endsWith(String suffix): 判断此字符串是否以指定的后缀开始

        String fileName = "test.java";
        System.out.println(fileName.endsWith("class"));//false
        System.out.println(fileName.endsWith("java"));//true

        //public boolean startsWith(String prefix): 判断此字符串是否以指定的前缀开始 :
        System.out.println(fileName.startsWith("test"));//true
        System.out.println(fileName.startsWith("Test"));//false
    }
}

字符串获取相关方法

package string.字符串的获取相关方法;

/**
 * @Describe
 * @Author Double LiFly
 * @date 2021/4/16 14:11
 */
public class GetString {
    public static void main(String[] args) {
        /**
         * >* public int length():返回此字符串的长度
         * >* public String concat(String str): 将指定的字符串连接到该字符串的末尾。
         * >* public char charAt(int index): 返回指定索引处的char值。
         * >* public int indexOf(String str):返回指定子字符串第一次出现在该字符串内的索引。
         */

        //public int length():返回此字符串的长度
        String str = "sadhasfdhasfhasfhuiahfaffasjkf123";
        System.out.println(str.length());

        //public String concat(String str): 将指定的字符串连接到该字符串的末尾。
        String str1 = "hello";
        String str2 = "world";
        System.out.println(str1.concat(str2));
        System.out.println(str1+str2);

        //public char charAt(int index): 返回指定索引处的char值。
        System.out.println(str1.charAt(2));

        //public int indexOf(String str):返回指定子字符串第一次出现在该字符串内的索引。
        String chs = "abcdabcdabcdabcdabcd";
        System.out.println(chs.indexOf('a'));
        System.out.println(chs.indexOf("abcd"));
        System.out.println(chs.indexOf("abcde"));
    }
}

字符串转换相关方法

package string.字符串的转换相关方法;

import java.io.UnsupportedEncodingException;
import java.util.Arrays;

/**
 * @Describe
 * @Author Double LiFly
 * @date 2021/4/16 14:25
 */
public class ChangeString {
    public static void main(String[] args) throws UnsupportedEncodingException {
        /**
         * >* public char[] toCharArray() : 将此字符串转换为新的字符数组。
         * >* public byte[] getBytes() : 使用平台的默认字符集将该String编码转换为新的字节数组。
         * >* public String replace(char oldChar, char newChar) :  将oldChar匹配的字符串使用newChar字符串替换。
         * >* public String replaceFirst(String regex,String replacement)  :  用给定的 replacement 替换此字符串匹配给定的regex的第一个子字符串。
         * >* public String toUpperCase() :  将字符中转换为大写
         * >* public String toLowerCase():  将字符中转换为小写
         */

       // public char[] toCharArray() : 将此字符串转换为新的字符数组。
        String str = "abcdefghijklmnopqrstuvwxyz";
        char[] chars = str.toCharArray();
        System.out.println(chars);
        System.out.println(Arrays.toString(chars));

        //public byte[] getBytes() : 使用平台的默认字符集将该String编码转换为新的字节数组。
        String str1 = "你好";
        byte[] gbks = str1.getBytes("GBK");
        System.out.println(Arrays.toString(gbks));

        //public String replace(char oldChar, char newChar) :  将oldChar匹配的字符串使用newChar字符串替换。
        String str2 = "你大爷的,会不会玩,不会玩滚";
        String newStr = str2.replace("大爷", "**");
        System.out.println(newStr);

        // public String replaceFirst(String regex,String replacement)  :  用给定的 replacement 替换此字符串匹配给定的regex的第一个子字符串。
        String str3 = "abcabcabc";
        String a = str3.replaceFirst("a", "*");
        System.out.println(a);

        //public String toUpperCase() :  将字符中转换为大写
        String s = str3.toUpperCase();
        System.out.println(s);

        //public String toLowerCase():  将字符中转换为小写
        String s1 = s.toLowerCase();
        System.out.println(s1);

    }
}

分割和去空格相关方法

package string.分割和去空格的功能方法;

import java.util.Arrays;

/**
 * @Describe
 * @Author Double LiFly
 * @date 2021/4/16 14:59
 */
public class SubString {
    public static void main(String[] args) {
        /**
         * >* public String[] split(String regex):将此字符串按照给定的regex(规则)拆分为字符串数组。
         * >* public String trim():去除该字符串的两端空格
         */

        //public String[] split(String regex):将此字符串按照给定的regex(规则)拆分为字符串数组。
        String str = "Hello world";
        String substring = str.substring(0, 5);
        System.out.println(substring);
        String substring1 = str.substring(6);
        System.out.println(substring1);

        //public String trim():去除该字符串的两端空格
        String str1 = " hello world ";
        String trim = str1.trim();
        System.out.println(trim);

        //public String[] split(String regex):将此字符串按照给定的regex(规则)拆分为字符串数组。
        String string = "a,b,c,d";
        String[] split = string.split("\\+");
        System.out.println(Arrays.toString(split));
        String[] s = string.split("_");
        System.out.println(Arrays.toString(s));

        String strs = "a.b.c.d";
        String[] split1 = strs.split(",");
        System.out.println(Arrays.toString(split1));
        String[] split2 = strs.split("\\.");
        System.out.println(Arrays.toString(split2));

    }
}

字符串截取相关方法

package string.字符串的截取方法;

/**
 * @Describe
 * @Author Double LiFly
 * @date 2021/4/16 14:19
 */
public class SubString {
    public static void main(String[] args) {
        /**
         * >* public String substring(int index): 返回一个子字符串,从beginIndex开始截取字符串到字符串结尾。
         * >* public String substring(int beginIndex, int endIndex): 返回一个子字符串,从 beginIndex 到endIndex截取字符串。
         *                                                          含beginIndex,不含endIndex。
         */

        String str = "abc abc edg rng we";
        System.out.println(str.substring(5));
        System.out.println(str.substring(4,8));
    }
}

指定字符串拼接小练习(一)

package string.按指定格式拼接字符串;

/**
 * @Describe
 * @Author Double LiFly
 * @date 2021/4/16 15:12
 */
public class Test {
    public static void main(String[] args) {
        /**
         * >* 定义一个方法,把数组{1,2,3}按照指定格式拼接成一个字符串。格式参照如下:
         * 	* [word1#word2#word3]
         */
        int[]arr = {1,2,3};
//        String arrayToString = getArrayToString(arr);
//        System.out.println(arrayToString);
        String arrayToString = getArrayToString(arr);

        System.out.println(arrayToString);

    }
    /*public static String getArrayToString(int[]arr){
        String str = "[";
        for (int i = 0; i < arr.length; i++) {
            if (i == arr.length-1){
                str += arr[i];
            }else {
                str += arr[i]+",";
            }
        }
        str += "]";
        return str;
    }*/

    public static String getArrayToString(int[]arr){
        String str = "[";
        for (int i = 0; i < arr.length; i++) {
            if (i == arr.length-1){
                str += arr[i];
            }else {
                str += arr[i]+"#";
            }
        }
        str += "]";
        return str;
    }
}

统计字符个数小练习(二)

package string.按指定格式拼接字符串;

import java.util.Scanner;

/**
 * @Describe
 * @Author Double LiFly
 * @date 2021/4/16 15:30
 */
public class Test1 {
    public static void main(String[] args) {
        /**
         * 练习:统计输入的字符串中各种字符的个数
         *       需求: 键盘输入一个字符串,并且统计其中各种字符出现的次数。
         * 	  种类有:大写字母、小写字母、数字、其他
         *
         * 解题步骤
         *  1.创建四个变量
         *      大写字母:   upperCount
         *      小写字母:   lowerCount
         *      数字:      numberCount
         *      其他:      otherCount
         *  2.创建Scanner对象,键盘录入
         *  3.for循环遍历判断输入的字符属于大写字母或小写字母或数字或其他
         *  4.输出
         */
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入字符串:");
        String str = scanner.nextLine();
        char[] chars = str.toCharArray();
        getNumber(chars);

    }
    public static void getNumber(char[] chars){
        int upperCount = 0;
        int lowerCount = 0;
        int numberCount = 0;
        int otherCount = 0;
        for (int i = 0; i < chars.length; i++) {
           char ch =  chars[i];
           if (ch >= 'A' && ch <= 'Z'){
               upperCount++;
           }else if (ch >= 'a' && ch <= 'z'){
               lowerCount++;
           }else if (ch >= '0' && ch <= '9'){
               numberCount++;
           }else {
               otherCount++;
           }
        }
        System.out.println("大写字母为:"+upperCount+"个");
        System.out.println("小写字母为:"+lowerCount+"个");
        System.out.println("数字为:"+numberCount+"个");
        System.out.println("其他为:"+otherCount+"个");
    }
}

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

double_lifly

点喜欢就是最好的打赏!!

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

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

打赏作者

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

抵扣说明:

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

余额充值