String类常用方法:字符串比较、转换、查找、替换、拆分、截取、格式化

1、字符串与字符数组的转换

          toCharArray()

        String str = "helloword";

        char [] result= str.toCharArray();
        for (int x=0;x < result.length;x++){
            //编码减少32,将小写转换成大写字符
            result[x] -= 32;
        }
        //将处理后的字符数组交给String变为字符串
        String newStr = new String(result);
        System.out.println(newStr);
        //若要取部分字符串,取从0开始到5结束的字符
        System.out.println(new String(result,0,5));

2、检验字符串是否由数字组成

package Test;

public class Demo2 {
    public static void main(String[] args) {

        String str = "helloworld";
        System.out.println(isNumber("123") ? "由数字组成" : "不是由数字组成");
    }

    //定义一个方法:主要用来判断字符串是否由数字组成
    public static boolean isNumber(String str){
        //将字符串变成字符数组
        char [] result = str.toCharArray();
        for (int x = 0;x < str.length();x++){
            //将result数组里的字符与字符0~9之间进行比较
            if (result[x] < '0' || result[x] > '9'){
                return false;
            }

        }
        return true;
    }
}

3、字节与字符串之间的转换

package Test;

public class Demo2 {
    public static void main(String[] args) {

        //字节与字符串的转换
        String str = "helloheh";
        //将字符串变成字节数组
        byte [] data = str.getBytes();
        for (int x = 0;x < data.length;x++){
            data[x] -= 32;
        }
        System.out.println(new String(data));
        System.out.println(new String(data,0,5));


    }


}

3、字符串比较

          等值比较:equals

          大小比较:compareTo

package Test;

public class Demo2 {
    public static void main(String[] args) {

//字符串比较
        //1、public boolean euqals(String anObject):区分大小写的相等比较
        //进行字符串区分大小写等值比较
        String strA = "ABC";
        String strB = "abc";
        System.out.println(strA.equals(strB));//结果为false

        //2、public boolean equalsIgnoreCase(String anotherString):不区分大小的比较
        //进行字符串不区分大小写等值比较
        String strC = "ABC";
        String strD = "abc";
        System.out.println(strA.equalsIgnoreCase(strD));//结果为true

        //3、public int compareTo(String anotherString):进行字符串大小比较,该方法返回一个int型数据,该数据有三种取值:大于(>0)、小于(<0)、等于(=0)
        //进行字符串区分大小比较
        String strE = "mmh";
        String strF = "mmH";
        System.out.println(strE.compareTo(strF));//结果为32  说明:strE > strF
        System.out.println(strF.compareTo(strE));//结果为-32  说明:strF > strE
        System.out.println("HELLO".compareTo("HELLO"));//结果为0    说明:"HELLO" = "HELLO"

        //4、public int compareToIgnoreCase(String str):不区分大小写进行字符串比较
        //进行字符串不区分大小比较
        String strG = "MMh";
        String strH = "mmH";
        System.out.println(strE.compareToIgnoreCase(strH));//结果为0  说明:strH = strG


    }


}

4、字符串查找

package Test;

public class Demo2 {
    public static void main(String[] args) {

//字符串查找
        //1、public boolean contains(String s):判断子字符串是否存在(存在返回true,不存在返回false)
        //判断子字符串是否存在
        String str = "hello.csdn.dd";
        System.out.println(str.contains("dd"));//结果为true
        System.out.println(str.contains("world"));//结果为false

        //2、public int indexOf(String str):从头查找指定字符串的位置,找不到返回-1,找到返回首字符的索引
        //判断字符串是否存在
        String str2 = "hello.csdn.dd";
        System.out.println(str2.indexOf("dd"));//结果为11
        System.out.println(str2.indexOf("world"));//结果为-1

        //3、public int indexOf(String str,int fromIndex):从指定位置由前向后查找指定字符串的位置

        //4、public int lastIndexOf(String str):从后向前查找指定字符串的位置
        String str3 = "hello.csdn.dd";
        System.out.println(str3.lastIndexOf("."));//结果为10
        System.out.println(str3.lastIndexOf("world"));//结果为-1

        //5、public int lastIndexOf(String str,int fromIndex):从指定位置由后向前查找指定字符串的位置

        //6、public boolean startsWith(String prefix):判断是否以指定的字符串开头
        //7、public boolean startsWith(String prefix,int toffset):从指定位置判断是否以指定的字符串开头
        //8、public boolean endsWith(String suffix):判断是否以指定的字符串结尾
        //判定是否已指定字符串开头或结尾
        String str4 = "**@@ello.csdn.dd##";
        System.out.println(str4.startsWith("**"));//结果为true
        System.out.println(str4.startsWith("@@",2));//结果为true
        System.out.println(str4.endsWith("##"));//结果为true


    }


}

5、字符串替换

          replaceAll():全部替换

          replaceFirst():替换首个

          通过只当内容进行字符串替换显示

package Test;

public class Demo2 {
    public static void main(String[] args) {

//字符串替换:通过只当内容进行字符串替换显示
        //1、public String replaceAll(String regex,String replacement):全部替换
        //2、public String replaceFirst(String regex,String replacement):替换首个

        String str = "hello.csdn.dd";
        System.out.println(str.replaceAll("l","x"));//结果:hexxo.csdn.dd
        System.out.println(str.replaceFirst("l","x"));//结果:hexlo.csdn.dd

    }


}

6、字符串拆分

          遇到拆分不了的字符,试试使用转义字符进行转义,可以根据字符索引进行截取(大多涉及逻辑计算)

package Test;

public class Demo2 {
    public static void main(String[] args) {

//字符串拆分:根据指定的字符串或者是表达式实现字符串的拆分,拆分完成的数据会以字符串数组的形式返回
        //1、public String[] split(String regex):按照指定的字符串全部拆分
        //字符串拆分处理
        String str = "hello world hello csdn";
        //按空格全部拆分
        String result [] = str.split(" ");
        for (int x = 0;x < result.length;x++){
            System.out.println(result[x]);
        }
        /*结果:
          hello
          world
          hello
          csdn*/


        //2、public String[] split(String regex,int limit):按照指定的字符串拆分为指定的个数
        //字符串拆分处理
        String str2 = "hello world hello csdn";
        //按空格只拆分两个,后面不进行拆分
        String result2 [] = str2.split(" ",2);
        for (int x = 0;x < result2.length;x++){
            System.out.println(result2[x]);
        }
        /*
        * hello
        * world hello csdn
        * */

        //若是遇到拆不了的情况,可以考虑转义
        String str3 = "hello.world.ello.csdn";
        //按空格只拆分两个,后面不进行拆分
        String result3 [] = str3.split("\\.");
        for (int x = 0;x < result3.length;x++){
            System.out.println(result3[x]);
        }
        /*结果:
          hello
          world
          ello
          csdn*/

    }


}

7、字符串截取

          从一个完整的字符串之中截取出子字符串

package Test;

public class Demo2 {
    public static void main(String[] args) {


//字符串截取:从一个完整的字符串之中截取出子字符串,
        //1、public String substring(int beginIndex):从指定索引截取到结束

        //2、public String substring(int beginIndex,int endIndex):截取指定索引范围中的子字符串

        //观察子字符串的操作
        String str = "www.csdn.dd";
        System.out.println(str.substring(4));//结果:csdn.dd
        System.out.println(str.substring(4,6));//结果:cs

        //根据索引找到位置
        String str1 = "昵称-tel-里斯.div";
        int beginIndex = str1.indexOf("-",str1.indexOf("tel")) + 1;
        int endIndex = str1.lastIndexOf(".") ;
        System.out.println(str1.substring(beginIndex,endIndex));//结果:里斯


    }


}

8、字符串格式化

          类似于c语言中的格式化输出语句,可以利用占位符实现数据的输出,对于占位符而言,常用的:字符串(%s)、字符(%c)、整数(%d)、小数(%f)

package Test;

public class Demo2 {
    public static void main(String[] args) {

//格式化字符串:类似于c语言中的格式化输出语句,可以利用占位符实现数据的输出,对于占位符而言,常用的:字符串(%s)、字符(%c)、整数(%d)、小数(%f)
        //1、public static String format(String format,各种类型 ...args):根据指定结构进行文本格式化显示
        //格式化处理
        String name = "张三";
        int age = 18;
        double score = 98.765261;
        String str = String.format("姓名:%s、年龄:%d、成绩:%5.3f。",name,age,score);
        System.out.println(str);
        //结果:姓名:张三、年龄:18、成绩:98.765。

    }


}

9、其他操作方法

package Test;

public class Demo2 {
    public static void main(String[] args) {

//其他操作方法
        //1、public String concat(String str):描述字符串的连接过程
        //字符串连接
        String str = "www.".concat("csdn");
        System.out.println(str);//结果:www.csdn

        //2、public String intern():字符串入池

        //3、public boolean isEmpty():判断是否为空字符串(不是null)
        //null和""的区别:null表示没有实例化对象,""表示有实例化对象,但是内容为空
        String str1 = "csdn";
        System.out.println(str1.isEmpty());//结果:false
        System.out.println("www".isEmpty());//结果:false

        //4、public int length():计算字符串长度
        //5、public String trim():去除左右的空白符号
        String str2 = "     hello csdn     ";
        System.out.println(str2.length());
        System.out.println(str2);
        String newStr2 = str2.trim();
        System.out.println(newStr2.length());
        System.out.println(newStr2);
        /*结果:
        *20
        hello csdn     
        10
        hello csdn
        * */

        //6、public String toUpperCase():转大写
        //7、public String toLowerCase():转小写
        //String类里面提供有大小写转换,但是这种转换的特征是可以避免非字母的转换
        //大小写转换
        String str3 = "Hello World!!!";
        System.out.println(str3.toUpperCase());//结果:HELLO WORLD!!!
        System.out.println(str3.toLowerCase());//结果:hello world!!!
    

        //自定义编写首字母大写的方法,因为String类没有提供
        System.out.println(StringUtil.initcap("hello world"));//结果:Hello world
        System.out.println(StringUtil.initcap("h"));//结果:H

    }

}

class StringUtil{
    public static String initcap(String str){
        //如果字符串等于空或者无内容,则原样返回字符串
        if (str == null || "".equals(str)){
            return str;
        }
        //如果str的长度为1,则调用大写的方法
        if (str.length() == 1){
            return str.toUpperCase();
        }
        //如果字符的长度即不为1,也不为空,则利用字符串截取第一位字符,进行大写转换,然后加上1到结尾的字符
        return str.substring(0,1).toUpperCase() + str.substring(1);
    }
}

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值