【Java】String类的常用方法(创建,转换,比较,截取,判断)

1. String的创建与转换

byte[] getBytes():把字符串转换为byte数组

char[] toCharArray():把字符串转换为char数组

String(byte[] bytes):把byte数组转换为字符串

String(char[] value):把char数组转换为字符串 

如:

	char[] c = new char[]{'a','b','c'};
	// 把char[]数据转为String类型
	String str = new String(c);
	
	//把String转为char[]类型
	char[] c1 = str.toCharArray();

	// 把字符串转换为byte数组
	byte[] b = str.getBytes();

	//把byte数组转换为字符串
	String str2 = new String(b);

2. 获取字符串信息

int length() 返回此字符串的长度 

char charAt(int index) 返回指定索引处的 char 值 

int indexOf(String str)返回指定子字符串在此字符串中第一次出现处的索引。如果此字符串中没有这样的字符,则返回 -1
 
int lastIndexOf(String str)返回指定子字符串在此字符串中最右边出现处的索引 
    String str = "ABCDB";
    // 获取字符串长度
    int length = str.length();
    System.out.println(length); // 5 

    // 返回指定索引处的char值
    char c2 = str.charAt(2);
    System.out.println(c2); //C

    // 返回指定子字符串在此字符串中第一次出现处的索引
    int firstIndex = str.indexOf('B');
    System.out.println(firstIndex); // 1

    //返回指定子字符串在此字符串中最右边出现处的索引
    int lastIndex = str.lastIndexOf('B');
    System.out.println(lastIndex); // 4

3. 字符串比较判断

boolean equals(Object anObject) 将此字符串与指定的对象比较。 

boolean equalsIgnoreCase(String anotherString) 将此 String 与另一个 String 比较,不考虑大小写

boolean contentEquals(CharSequence cs) 将此字符串与指定的 CharSequence 比较(和equals底层相同) 
	String str1 = "ABC";
	String str2 = "abc";
	System.out.println(str1.equals(str2)); // fasle
	System.out.println(str1.equalsIgnoreCase(str2)); //true
	System.out.println("ABC".contentEquals(str1)); // true contentEquals和equals底层相同

4. 字符串大小写转换

String toLowerCase():字符串大写转小写
String toUpperCase():字符串小写转大写

	String str1 = "ABC";
	String str2 = "abc";
	System.out.println(str1.toLowerCase());
	System.out.println(str2.toUpperCase());

5. 获取以hello开头的文件名的后缀名

    /**
     * 获取以hello开头的文件名的后缀名
     *
     * @param fileName:文件名
     * @return fileSuffixName: 每个文件后缀名构建的数组
     */
    public static List<String> getFileSuffix(String fileName) {
    
        String[] getSingInfo = fileName.split(";");// 获取每一个文件名
        List<String> fileSuffixName = new ArrayList<String>(); //  定义每个文件后缀名构建的数组
        for (String name : getSingInfo) {
            if (name.startsWith("hello")) {
                int index = name.indexOf("."); // 获取点首次出现的索引
                String suffixName = name.substring(index + 1); // 获取点后面所有字符串内容
                fileSuffixName.add(suffixName);
            }
        }
        return fileSuffixName;
    }

6.把单词首字母大写

    /**
     * String练习2:把单词首字母大写
     *
     * @param str : 传入的字符串
     * @return newStr: 首字母大写后的字符串
     */
    public static String toInitialsUpCase(String str) {

        char firstLetter = str.charAt(0);  // 获取首字母
        String backLetter = str.substring(1); // 首字母后面的内容
        if (Character.isUpperCase(firstLetter)) {
            return str;
        }
        String newStr = Character.toUpperCase(firstLetter) + backLetter;
        return newStr;
    }

7. 判断字符串是否非空

    /**
     * 判断字段穿是否为空,定义以下三种方式都为空
     * String str = ""; 空字符串为空
     * String str = " "; 空格为空
     * String str = null; null为空
     * 
     * @param str
     * @return
     */
    public static boolean isNull(String str) {
 
        if (str == null || "".equals(str.trim())) {
            return true;
        }
        return false;
    }

注意: 在写if (str == null || "".equals(str.trim()))这行代码时,一定要将 "".equals(str.trim())常量""写在equals前面,如果将str变量写在equals前面,万一str是null,它将是一个空对象,无法调用equals方法,会抛出空指针异常。

	String str = null;
	System.out.println(str.equals("test"));

在这里插入图片描述

其实上面代码可以写成更加优雅的写法

    public static boolean isNull(String str) {
        return str == null || "".equals(str.trim());
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值