孙肖宁

java中字符串的操作(String类)
在程序中经常会用到字符串,在java中定义了String和StringBuffer两给类来封装字符串,并提供了一系...
扫描右侧二维码阅读全文
26
2017/08

java中字符串的操作(String类)

在程序中经常会用到字符串,在java中定义了String和StringBuffer两给类来封装字符串,并提供了一系列操纵字符串的方法,它们都位于java.lang包中,因此不需要导包就可以直接使用。String类是不可变类,也就是说String对象声明后,将不可修改(可以理解为字符串一旦创建就不可以修改)。

String的初始化

1.使用字符串常量直接初始化一个String|对象。
String [变量名] = "变量值";
2.使用String的构造方法初始化字符串对象
String() 创建一个内容为空的字符串
String(char[] value) 根据指定的字符数组创建对象。
String(String value) 根据指定的字符串内容创建对象
代码示例:

public class StringDemo1 {
    public static void main(String [] args) {
        String str1 = "sunxiaoning";//使用字符串常量直接初始化一个String|对象。
        String str2 = new String();//创建一个内容为空的字符串
        char ch[] = {'s','x','n'};
        String str3 = new String(ch);//根据指定的字符数组创建对象。
        String str4 = new String("sunxiaoning");//根据指定的字符串内容创建对象
        //打印字符串
        sop(str1);
        sop(str2);
        sop(str3);
        sop(str4);
    }
    /*
     * 打印函数
     * */
    public static void sop(Object obj) {
        System.out.println(obj);
    }
}

String的常见操作

1.获取

  • int length() 返回此字符串的长度
  • char charAt(int index) 根据位置获取位置上某个字符。
  • int indexOf(int ch) 返回的是ch在字符串中第一次出现的位置。
  • int indexOf(int ch, int fromIndex) 从fromIndex指定位置开始,获取ch在字符串中出现的位置。
  • int indexOf(String str) 返回的是str在字符串中第一次出现的位置。
  • int indexOf(String str, int fromIndex) 从fromIndex指定位置开始,获取str在字符串中出现的位置。
  • int lastIndexOf(int ch) 返回此字符在此字符串中最后一次出现处的索引
    代码演示:
public class StringDemo2 {
    public static void main(String [] args) {
        String str = "aabbccddeeff";
        sop("字符串的长度为"+str.length());
        sop("下标为5的字符是"+str.charAt(5));
        sop("第一次出现c的位置是"+str.indexOf('c'));
        sop("从第六个位置数,出现c的位置是"+str.indexOf('d',6));
        sop("第一次出现字符串cc的位置是"+str.indexOf("dd"));
        sop("最后一次出现cc的位置是"+str.lastIndexOf("cc"));
    }
    public static void sop(Object obj) {
        System.out.println(obj);
    }
}

2.判断

  • boolean contains(CharSequence cs) 判断此字符串中是否包含指定的字符序列
  • boolean isEmpty() 判断字符中是否有内容,原理就是判断长度是否为0,当且仅当字符串长度为0时返回true
  • boolean startsWith(String prefix) 判断此字符串是否以指定的字符串开始
  • boolean endsWith(String suffix) 判断此字符串是否以指定的字符串结尾
  • boolean equals(Object anObject) 将此字符串与指定字符串比较,判断字符串内容是否相同,复写了Object类中的equals方法。
  • boolean equalsIgnoreCase(String anotherString) 判断内容是否相同,并忽略大小写。
    代码示例
public class StringDemo3 {
    public static void main(String []args) {
        String str1 = "aaaabbbbb";
        String str2 = "aabbcc";
        String str3 = "aAbbcc";
        sop("str1中是否包含aa"+str1.contains("aa"));
        sop("Str1的长度为0吗"+str1.isEmpty());
        sop("str1是以cc开头吗"+str1.startsWith("cc"));
        sop("str1是以bb结尾吗"+str1.endsWith("bb"));
        sop("str1的内容与str2相同吗"+str1.equals(str2));
        sop("str2的内容与str3相同吗(忽略大小写)"+str2.equalsIgnoreCase(str3));
    }
    public static void sop(Object obj) {
        System.out.println(obj);
    }
}

注意:indexOf(str):可以索引str第一次出现位置,如果返回-1.表示该str不在字符串中存在。所以,也可以用于对指定判断是否包含。而且该方法即可以判断,有可以获取出现的位置。

3.转换

  • 将字符数组转成字符串

    • 构造方法

      • String(char[])
      • String(char[],offset,count) 将字符数组中的一部分转成字符串。
    • 静态方法

      • static String copyValueOf(char[])
      • static String copyValueOf(char[] data, int offset, int count)
      • static String valueOf(char[])
  • 将字符串转成字符数组
    -char[] toCharArray()
  • 将字节数组转成字符串

    • String(byte[])
    • String(byte[],offset,count) 将字节数组中的一部分转成字符串
  • 将字符串转成字节数组

    • byte[] getBytes()
  • 将基本数据类型转成字符串

    • static String valueOf(int)
    • static String valueOf(double)

4.替换

  • String replace(oldchar,newchar) 将字符串中的oldchar替换成newchar

5.切割

  • String[] split(String regex) 根据参数regex将原来的字符串分割为若干子串

6.子串。获取字符串中的一部分。

  • String substring(int beginIndex) 返回一个新字符串,它包含字符串索引beginIndex后的所有字符。
  • String substring(int beginIndex,int endIndex) 返回一个新字符串,它包含此字符串中索引beginIndex到索引endindex之间的所有字符。

7.将字符串转成大写或则小写

  • String toUpperCase() 将字符串转成大写
  • String toLowerCase() 将字符串转成小写

8.将字符串两端的多个空格去除

  • String trim();

9.对两个字符串进行自然顺序的比较

  • int compareTo(string);
Last modification:August 26th, 2017 at 01:35 pm
If you think my article is useful to you, please feel free to appreciate

Leave a Comment