String类的常用方法

1. 字符与字符串

char < - > String

  1. char[ ] - --> String
    public String(char[ ] value):将字符数组全部转换为字符串
    public String(char[ ] value, int offset, int len):将字符数组的部分内容转换为字符串
  2. String ----> char
    public char charAt(int index):取得字符串指定索引的字符,从0开始
  3. String ----> char[ ]
    public char[ ] toCharArray():将字符串转为字符数组
  1. charAt()方法 —— 取得索引位置指定字符,索引从0开始
	String str = "hello";
	System.out.println(str.charAt(0));  //h
	System.out.println(str.charAt(4));   //o
	System.out.println(str.charAt(5));   //下标越界,出现java.lang.StringIndexOutOfBoundsException
  1. 字符串和字符数组的转换(前两个为构造方法)
    • public String(char[ ] value) - 将字符数组的所有内容变为字符串
    • public String(char[ ], int offset, int count) - 将部分字符数组内容变为字符串
    • public char[ ] toCharArray() -将字符串变为字符数组返回
public class Test{
   public static void main(String[] args){
       String str = "hello";
       //将字符串转为字符数组
       char[] data = str.toCharArray();
       for(int i = 0; i <data.length; i++){
            System.out.print(data[i]);
            if(i < data.length-1){
                System.out.print(",");      //h,e,l,l,o
            }
        }
        System.out.println();

        //将字符数组全部转换为字符串
        String str1 = new String(data);
        System.out.println(str1);   //hello

        //将字符数组部分转换为字符串
        String str2 = new String(data,0,3);
        System.out.println(str2);    //hel
        System.out.println(str2.length());   //3
    }
}
  1. 判断一个字符串是否由数字组成
    将字符串先转换为字符数组,判断每一个字符是否是“ 0 - 9” 之间的内容,如果是,则由数组组成
public static boolean isNumber(String str){
    if(str == null){
        return false;
    }
    if(str == ""){
        return false;	  
    }
    char[] data = str.toCharArray();
    for(int i = 0; i<data.length; i++){
        if(data[i] < '0' || data[i] >'9'){
            return false;
        }
    }
    return true;
}

2. 字节与字符串

字节常用于数据传输以及编码转换的处理之中,在String中提供有对字节的支持。
byte < - > String

  1. byte[ ] < - > String
    public String (byte[ ] value) :将字节数组全部转为字符串
    public String (byte[ ] value, int offset, int len) : 将字节数组的部分内容转为字符串
  2. String < - > byte[ ]
    public byte[ ] getBytes(): 将字符串转为字节数组
    public byte[ ] getBytes(String charset): 将字符串按照指定编码格式转为字节数组。
    Linux 默认编码是UTF-8, Windows默认编码是GBK
  1. 字符串与字节数组的转换
  • public byte[] getBytes() - 将字符串以字节数组的形式返回
  • public String(byte bytes[ ]) - 将字节数组变为字符串
public class TestString {
    public static void main(String[] args) {
       String str = "hello world";

       //将字符串中每个字符转换为字节,每一个ASCII就是一个字节
        //将字符串转换为字节
       byte[] bytes = str.getBytes();
       for(int i = 0; i < bytes.length; i++){
           System.out.print(bytes[i]);    //输出字符对应的ASCII码
           if (i < bytes.length-1){
               System.out.print(",");
           }
       }

        System.out.println();
       //将字节准换为字符串
        System.out.println(new String(bytes));
        System.out.println(new String(bytes,2,5));
    }
}
/**
104,101,108,108,111,32,119,111,114,108,100
hello world
llo w
*/

3. 字符串比较

在String中提供了equals()方法,去比较两个字符串的内容(区分大小写)。除此之外,还有以下几个比较的方法。

  1. public boolean equals(Object anObject) - 区分大小写,判断字符串是否相等。可以传任何包装类型
  2. public boolean equalsIgnoreCase(String anoterString) - 不区分大小写,只能传一个字符串
  3. public int compareTo(String anotherString) - 比较两个字符串大小关系
    1)相等: 返回0
    2)小于: 返回小于0的数
    3)大于: 返回大于0的数
public class TestString {
    public static void main(String[] args) {
        String str = "hello";
        String str1 = "Hello";
        System.out.println(str.equals(str1));     //false
        System.out.println(str.equalsIgnoreCase(str1));  //true

        System.out.println("a".compareTo("A"));  //32
        System.out.println("A".compareTo("A"));  //0
        System.out.println("B".compareTo("A"));    //1
        System.out.println("AB".compareTo("AD"));  //-2
        System.out.println("强".compareTo("李"));   //-2068
    }
}

附加: String中的equals()方法是覆写了Object的equals方法
在这里插入图片描述

4. 字符串查找

  1. public boolean contains(CharSequences s) - 判断一个字符串是否存在
  2. public int indexOf(String str) - 从头开始查找指定字符串的位置,查到了返回位置开始的索引,查不到返回-1
public class TestString {
    public static void main(String[] args) {
        String str = "hello,world";
        //判断一个字符串是否存在
        System.out.println(str.contains("hello"));  //true
        System.out.println(str.contains("java"));   //false

        //查找指定字符串的索引位置
        System.out.println(str.indexOf("e"));   //1
        System.out.println(str.indexOf("world"));  //6
        System.out.println(str.indexOf("l"));   //2  返回第一个字母l出现的位置
        System.out.println(str.indexOf("z"));   //-1

        //查找指定索引位置的字符
        System.out.println(str.charAt(6));   //w
    }
}

  1. 判断开头或结尾
  • public boolean endsWith(String suffix) - 判断是否以指定字符串结尾
  • public boolean startsWith(String prefix) - 判断是否是以指定字符串开头
public class TestString {
    public static void main(String[] args) {
        String filename = "Test.java";
        if(filename.endsWith(".java")){
            System.out.println(filename+"是.java文件");
        }else{
            System.out.println(filename+"不是.java文件");
        }

        String url = "http://www.baidu.com";
        boolean src = url.startsWith("http") || url.startsWith("https");
        if(src){
            System.out.println(url + "是网址");
        }else{
            System.out.println("不是网址");
        }
    }
}
/**
Test.java是.java文件
http://www.baidu.com是网址
*/

5. 字符串替换

  1. public String replaceAll(String regex, String replacement) - 将字符串中所有指定的内容替换为新内容
  2. public String replaceFirst(String regex, String replacement) - 替换首个内容
public class TestString {
    public static void main(String[] args) {
        String str = "helloworld";
        System.out.println(str.replaceAll("l","-"));
        System.out.println(str.replaceFirst("l","-"));
        System.out.println(str.replaceAll("hello","?"));

    }
}
/**
he--owor-d
he-loworld
?world
*/

6.字符串拆分

  1. public String[ ] split(String regex) - 按照指定格式将字符串全部拆分
  2. public String[ ] split(String regex, int limit) - 将字符串拆分,数组长度限制limit长度
public class TestString {
    public static void main(String[] args) {
        String str = "hello world hello java";
        //全部拆分
        String[] result = str.split(" ");
        for(String s:result){
            System.out.print(s +",");
        }

        System.out.println();
        //部分拆分,拆分为两个字符串
        String[] result1  = str.split(" ", 2);
        for (String s:result1){
            System.out.print(s+",");
        }
    }
}
/**
hello,world,hello,java,
hello,world hello java,
*/

举例:拆分IP

public class TestString {
    public static void main(String[] args) {
        String str = "192.168.1.1";
        String[] result = str.split("\\.");
        for(String s:result){
            System.out.println(s);
        }
    }
}

7.字符串截取

  1. public String subString(int beginIndex) - 从指定索引开始截取到字符串结尾
  2. public String subString(int beginIndex, int endIndex) - 从指定索引位置到指定结束位置
public class TestString {
    public static void main(String[] args) {
        String str = "helloworld";
        System.out.println(str.substring(5));
        System.out.println(str.substring(0,5));
    }
}

8. 其他一些方法

  1. trim() - 去掉字符串的左右两边空格,中间保留
  2. toUpperCase() - 将字符串转大写处理
  3. toLowerCase() - 将字符串转小写处理
  4. length() - 返回字符串的长度
  5. isEmpty() - 判断是否是空字符串,不包含null
    举例:写一个方法,让字符串首字符变成大写
public class TestString {
    public static void main(String[] args) {
        System.out.println(firstUpper("hello"));
        System.out.println(firstUpper(""));
        System.out.println(firstUpper("a"));
        System.out.println(firstUpper(null));
    }

    private static String firstUpper(String str) {
        if (str== null || "".equals(str)){
            return str;
        }
        if(str.length()>1){
            return str.substring(0,1).toUpperCase()+str.substring(1);
        }
        return str.toUpperCase();
    }
}
/**
Hello

A
null
*/
  • 9
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值