Java中的字符串及其中的常用方法

字符串是由多个字符组成的一串数据
String的特点:

  • 字符串是常量,一旦被创建就不能改变,这是因为字符串的值是存放在方法区的常量池里面,但是引用可以改变。
  • 字符串字面值"ab"也可以看成是一个字符串对象。
    内存图如下(例子)
    在这里插入图片描述
    在这里插入图片描述
    这样可以更好的理解字符串常量在程序运行过程中在内存中的存储情况。

1.常见String类的获取功能

  • public int length(): 获取字符串的长度。
  • public char charAt(int index): 获取指定索引位置的字符
  • public int indexOf(int ch): 返回指定字符在此字符串中第一次出现处的索引。
  • public int indexOf(String str): 返回指定字符串在此字符串中第一次出现处的索引。
  • public int indexOf(int ch,int fromIndex):返回指定字符在此字符串中从指定位置后第一次出现处的索引。
  • public int indexOf(String str,int fromIndex): 返回指定字符串在此字符串中从指定位置后第一次出现处的索引。
  • public String substring(int start): 从指定位置开始截取字符串,默认到末尾。
  • public String substring(int start,int end): 从指定位置开始到指定位置结束截取字符串。
package org.baidu2;

public class Mytest1 {
    public static void main(String[] args) {
        String str = "anAdEfg";

        System.out.println("String类的获取功能");
        //获取字符串的长度
        int length = str.length();
        //获取指定索引位置的字符
        char c1 = str.charAt(0);
        //返回指定字符在此字符串中第一次出现处的索引
        int c2 = str.indexOf('n');
        //返回指定字符串在此字符串中第一次出现的索引
        int c3 = str.indexOf("fg");
        //返回指定字符在此字符串中从指定位置后第一次出现处的索引。
        int c4= str.indexOf('f', 2);
        //返回指定字符串在此字符串中从指定位置后第一次出现处的索引。
        int c5 = str.indexOf("fg", 2);
        //从指定位置开始截取字符串,默认到末尾
        String c6 = str.substring(2);
        //从指定位置开始到指定位置结束截取字符串
        String c7 = str.substring(2, 4);
        System.out.println(length);
        System.out.println(c1);
        System.out.println(c2);
        System.out.println(c3);
        System.out.println(c4);
        System.out.println(c5);
        System.out.println(c6);
        System.out.println(c7);
    }
    }

运行结果:

7
a
1
5
5
5
AdEfg
Ad

2.常见String类的判断功能

  • public boolean equals(Object obj): 比较字符串的内容是否相同,区分大小写
  • public boolean equalsIgnoreCase(String str): 比较字符串的内容是否相同,忽略大小写
  • public boolean contains(String str): 判断字符串中是否包含传递进来的字符串
  • public boolean startsWith(String str): 判断字符串是否以传递进来的字符串开头
  • public boolean endsWith(String str): 判断字符串是否以传递进来的字符串结尾
  • public boolean isEmpty(): 判断字符串的内容是否为空串""。
package org.baidu2;

public class Mytest1 {
    public static void main(String[] args) {
       String str1 = "axcde";
        String str2 = "Axcde";
        System.out.println("String类的判断功能");
        //比较字符串的内容是否相同,区分大小写
        boolean b = str1.equals(str2);
        //比较字符串的内容是否相同,忽略大小写
        boolean b1 = str1.equalsIgnoreCase(str2);
        //判断字符串中是否包含传递进来的字符串
        boolean b2 = str1.contains("cde");
        //判断字符串是否以传递进来的字符串开头
        boolean b3 = str1.startsWith("ax");
        //判断字符串是否以传递进来的字符出结尾
        boolean b4 = str2.endsWith("de");
        //判断字符串的内容是否为空
        boolean b5 = str1.isEmpty();
        System.out.println(b1);
        System.out.println(b2);
        System.out.println(b3);
        System.out.println(b4);
        System.out.println(b5);
    }
    }

运行结果为:

String类的判断功能
true
true
true
true
false

3.常见String类的转换功能

  • public byte[] getBytes(): 把字符串转换为字节数组。
  • public char[] toCharArray(): 把字符串转换为字符数组。
  • public static String valueOf(char[] chs): 把字符数组转成字符串。
  • public static String valueOf(int i): 把int类型的数据转成字符串。(String类的valueOf方法可以把任意类型的数据转成字符串。)
  • public String toLowerCase(): 把字符串转成小写。
  • public String toUpperCase(): 把字符串转成大写。
  • public String concat(String str): 把字符串拼接。
package org.baidu2;

public class Mytest1 {
    public static void main(String[] args) {
        String str = "anAdEfg";
        String str1 = "axcde";
        int a=123323;
        //把字符串转换为字节数组
        byte[] bytes = str.getBytes();
        for (int i = 0; i < bytes.length; i++) {
            System.out.print(bytes[i]+" ");
        }
        //把字符串转换为字符数组
        char[] chars = str.toCharArray();
        for (int i = 0; i < chars.length; i++) {
            System.out.print(chars[i]+" ");
        }
        System.out.println();
        //把字符数组转换成字符串
        String s2 = new String (chars);
        //把int类型的数据转成字符串
        String s3 = Integer.toString(a);
        //把字符串转换成小写
        String s = str.toLowerCase();
        //把字符串变成大写
        String s1 = str.toUpperCase();
        //字符串拼接
        String s4 = str.concat(str1);
        System.out.println(s);
        System.out.println(s1);
        System.out.println(s2);
        System.out.println(s3);
        System.out.println(s4);
    }
    }

运行结果为:

97 110 65 100 69 102 103 a n A d E f g 
anadefg
ANADEFG
anAdEfg
123323
anAdEfgaxcde

4.常见String类的其他常用功能

  • public String replace(char old,char new) 将指定字符进行互换
  • public String replace(String old,String new) 将指定字符串进行互换
  • public String trim() 去除两端空格
  • public int compareTo(String str) 会对照ASCII 码表 从第一个字母进行减法运算 返回的就是这个减法的结果,如果前面几个字母一样会根据两个字符串的长度进行减法运算返回的就是这个减法的结果,如果连个字符串一摸一样 返回的就是0
  • public int compareToIgnoreCase(String str) 跟上面一样 只是忽略大小写的比较
package org.baidu2;

public class Mytest1 {
    public static void main(String[] args) {
        String str = "  anAdEfg  ";
        String str1 = "axcde";

        //将指定字符进行互换
        String s = str.replace('a', 'b');
        System.out.println(s);
        //将指定字符串进行互换
        String s1 = str.replace("ab", "qq");
        System.out.println(s1);
        //去除两端空格
        String s2 = str.trim();
        System.out.println(s2);
        //通过字典顺序去比较 返回的值是 ASCII 码的差值  调用者减去传入者
        int i = "abc".compareTo("ABc");
        System.out.println(i);
        //如果前面几个字母一样会根据两个字符串长度进行减法运算返回该减法的结果 (通过长度去比)
        int i1 = "abc".compareTo("a");
        System.out.println(i1);
        //忽略大小写的比较
        int i2 = "abc".compareToIgnoreCase("ABC");
        System.out.println(i2);
    }
    }

运行结果为:

  bnAdEfg  
  anAdEfg  
anAdEfg
32
2
0

5.常见String类中int与String的相互转换
  int转String有三种方式

  • num + “”
  • String.valueOf(num)
  • Integer.toString(num)
      String转int有两种方式
  • Integer.parseInt(str)
  • Integer.valueOf(str).intValue()
    上代码看一下
package org.westos.demo3;

public class mytest6 {
    public static void main(String[] args) {
        //int->String
        int i = 1234567;
        String s = "";
        s = i + "";//会产生两个String对象
        System.out.println(s);
        String s1 = String.valueOf(i);//使用String类的静态方法,只产生一个String对象
        System.out.println(s1);
        String s2 = Integer.toString(i);
        System.out.println(s2);
        //String->int
        String str = "12345";
        int i1 = Integer.parseInt(str);//直接使用静态方法,不会产生多余的对象
        System.out.println(i1);
        int i2 = Integer.valueOf(str).intValue();
        System.out.println(i2);

    }
}

运行结果为:

1234567
1234567
1234567
12345
12345

5.在学习了字符串以后知道了==和equals()的区别,下面拿代码看一下。

package org.baidu2;

public class Mytest1 {
    public static void main(String[] args) {
        String s1 = new String("hello");
        String s2 = new String("hello");
        System.out.println(s1.equals(s2));//判断字符串内容
        System.out.println(s1 == s2);//判断字符串引用

    }
}

运行结果为:

true
false

7.Java中的charAt()方法
java.lang.String.charAt() 方法返回指定索引处的char值。索引范围是从0到length() - 1。
声明java.lang.String.charAt()方法

  • public charcharAt(int index)
    拿个代码简单了解一下。
package org.baidu2;

public class Mytest2 {
    public static void main(String[] args) {
        //统计字符串中的小写字母,大写字母数字空格的个数
        String str = "1123ahdiASDFGF    shaid";
        int upper = 0;
        int lower = 0;
        int num = 0;
        int space = 0;
        for (int i = 0; i < str.length(); i++) {
            //返回该索引处的char值
            char c = str.charAt(i);
            System.out.print(c+" ");
            if(c>'a'&&c<'z'){
                lower++;
            }
            if(c>'A'&&c<'Z'){
                upper++;
            }
            if(c>'0'&&c<'9'){
                num++;
            }
            if(c==' '){
                space++;
            }
        }
        System.out.println();
        System.out.println(lower);
        System.out.println(upper);
        System.out.println(num);
        System.out.println(space);
    }
}

运行结果为:

1 1 2 3 a h d i A S D F G F         s h a i d 
7
5
4
4

·

  • 81
    点赞
  • 403
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
### 回答1: Java的String类是用于表示字符串的类,它包含许多常用方法来处理字符串,以下是一些常用字符串方法及其返回值: 1. length()方法:返回字符串的长度,即包含的字符数。 2. charAt(int index)方法:返回字符串指定位置的字符。 3. substring(int beginIndex, int endIndex)方法:返回从指定位置开始到指定位置结束的子字符串,其beginIndex表示开始位置(包含),endIndex表示结束位置(不包含)。 4. indexOf(char ch)方法:返回指定字符在字符串第一次出现的位置,如果不存在则返回-1。 5. indexOf(String str)方法:返回指定字符串字符串第一次出现的位置,如果不存在则返回-1。 6. replace(char oldChar, char newChar)方法:用指定的新字符替换字符串所有的旧字符,并返回替换后的新字符串。 7. replaceAll(String regex, String replacement)方法:用指定的新字符串替换字符串符合正则表达式的所有子串,并返回替换后的新字符串。 8. toUpperCase()方法:将字符串的所有字母转换为大写字母,并返回新字符串。 9. toLowerCase()方法:将字符串的所有字母转换为小写字母,并返回新字符串。 10. trim()方法:去除字符串两端的空格,并返回新字符串。 以上这些方法是String类常用的一些字符串方法,能够满足大多数字符串操作的需求。 ### 回答2: Java的String类是非常重要的一个类,常用于存储和操作字符串,其字符串长度是一个基本概念。String类提供了一些常用方法来获取字符串长度。 1. length()方法:该方法返回一个字符串的长度,即字符串字符的个数。例如: ```java String str = "Hello World!"; int len = str.length(); ``` 上面的代码,len的值为12,因为字符串一共有12个字符。 2. isEmpty()方法:该方法返回一个布尔值,判断一个字符串是否为空。如果一个字符串的长度为0,则认为它是空的。例如: ```java String str = ""; boolean isEmpty = str.isEmpty(); ``` 上面的代码,isEmpty的值为true,因为str是一个空字符串。 3. trim()方法:该方法去除字符串两端的空格,并返回去除空格后的字符串。例如: ```java String str = " Hello World! "; str = str.trim(); ``` 上面的代码,在执行str.trim()方法之后,str的值变为了"Hello World!",去除了两端的空格。 4. getBytes()方法:该方法返回一个字节数组,表示该字符串每个字符的字节编码。例如: ```java String str = "Hello World!"; byte[] bytes = str.getBytes(); ``` 上面的代码,bytes的长度为12,因为字符串一共有12个字符,每个字符占用1个字节。 5. length vs length():需要注意的是,length和length()虽然都可以用来获取字符串长度,但是它们的返回值类型不同。length是一个数组的属性,返回该数组的长度;而length()是String类的方法,返回字符串的长度。因此,我们需要根据具体的情况选择使用哪个方法。 在实际开发,我们会频繁地使用到这些方法,进行字符串长度的计算和判断,从而达到我们想要的程序效果。 ### 回答3: Java字符串是一种非常常见的数据类型,可以使用String类来创建和处理字符串。其字符串长度是String类的一个非常基本的方法,对于字符串的处理和操作都有着非常重要的意义。 字符串长度可以通过调用String类的length()方法来获取。该方法返回的是一个整数值,表示该字符串字符的数量,包括空格和特殊字符。例如,对于下面的字符串: String str = "Hello World!"; 调用str.length()方法将返回整数值12,它是该字符串字符的数量。如果该字符串为空字符串,即“”,那么调用该方法将返回整数值0。 在实际的开发字符串长度的获取非常常见,比如在字符串的截取、比较、连接等操作都需要用到字符串长度。另外,在一些具有字符个数限制的场景(如数据库的字段),该方法也可以用来判断字符串的长度是否符合规定。 除了length()方法,还有一个类似的属性可以获取字符串的长度,就是String类的length属性。该属性是一个final类型的整数,通过直接访问该属性可以获取字符串的长度。例如: String str = "Hello World!"; int len = str.length; 调用str.length将返回整数值12,它等价于调用str.length()方法。不过,需要注意的是,该属性是final类型的,即一旦获取了长度值,就不能再修改了。 因此,对于字符串的操作和处理,获取字符串长度是一项非常基本的操作。Java提供了String类的length()方法和length属性来获取字符串的长度,能够满足我们大部分的需求。对于需要频繁使用的场景,也可以将获取到的长度值存储在变量,以便下次使用。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值