字符串类

字符串类

字符串是一个完整的字符序列,可以包含字母、数字和其他符号。它是程序设计中经常使用的数据结构, 很多编程语言将字符串定义为基本数据类型,但是在Java语言中,字符串被定义为一个类 , 无论是字符串常量还是变量,都必须先生成 String类的实例对象后才能使用。

java.lang 包含两个字符串类 String 和 StringBuffer ,它们两个封装了字符串的全部操作。

  • String 用来处理字符串常量, 字符串常量是用双引号括起来的字符串。 在创建实例对象时需要指定字符串的内容,创建后其字符串长度与内容不可改变。
  • StringBuffer 用来处理字符串变量, 字符串变量在字符串对象创建后允许改变字符串的内容。

String 类的常用方法 —— 对字符串的一般处理(看做数组形式)

  1. 求字符串长度 str.length()方法
  2. 字符串连接 concat(str) 方法, 例如 "to”.concat(“get”).concat(“her”)。的返回值是“ together”。(这里的String对象其实是由StringBuffer完成的 ),相当于:
String str = "hello";
str = new StringBuffer().append(str).append("world!").toString();

“+” 可以把一个非字符串的数值连接到字符串尾部,编译器将自动把非字符串转换为字符串进行连接, 例如 String str = “hello” , str = str + 2,最后结果为hello2。

  1. 字符串截取
    字符串截取有两个途径: 一次截取一个字符(charAt方法)或一次截取一个子串(substring方法)。 (子集,顾名思义)
String str = "a short string";
String s1 = str.substring(2);
String s2 = str.substring(8, 14);

运行结果:

short string
string

substring 方法起始位置从 0 开始,如substring(8,14)即输出第8位到 第13位,

  1. 字符串比较
    .equals() ,用于比较两个字符串是否相等。返回值为布尔值。
    .compareTo() ,用于按字符顺序比较两个字符串,返回值为整型数。
    方法:
    boolean equals(Object object)
    boolean equalsIgnoreCase(String str) //忽略字符大小写
    int compareTo( Object object) 如果比较中字符较大,则为正数,如果较小,则为负数。
    int compareTo(String str)
    int compareToIgnoreCase(String str) //忽略字符大小写

  2. 数组复制到字符串
    一个字符数组的内容可以全部或部分地拷贝到一个字符串中,有两个静态方法用于这种复制:
    static String copyValueOf(char[ ] data)
    static String copyValueOf( char[ ] data, int offset, int count) offset 起始位置, count个数

char[] c = { ‘A’, ’ ‘, ‘c’ , ’ h’ , ’ a’ , ‘r’ };
String s1 = new String;
s1 = s1.copyValueOf©;

  1. 字符串大小写转换
    .toUpperCase() , .toLowerCase() 方法

  2. 字符串检索
    可以在一个字符串中检索指定字符或子串的位置, 如果检索到将返回一个代表位置的整数,否则返回 -1 ,
    方法: indexOf() 返回字符或子串首次出现的位置, lastIndexOf 方法返回字符或子串最后一次出现的位置。

  3. 字符串转化为数组
    字符串可以转换为字节数组或字符数组,这种转换在Java流处理中十分有用,字符串转为字节数组将进行特别处理,因为字符是16位长, 而字节为 8位长,所有要将字符的高 8 位去掉,只留低 8 位成为一个字节,有三个方法:
    byte [ ] getBytes(); 按系统默认字符集编码转换为字符节数组
    byte [ ] getBytes(String enc) enc 为字符集编码
    char [ ] toCharArray() 转换为字符数组

  4. 转换为字符串
    String 类提供了一组 valueOf() 方法用来将其他数据类型转化为字符串, 其参数可以任何数据(byte类型除外),它们都是静态的,也就是说不必创建实例化就可以直接调用这些方法,其基本用法为:valueOf()(数据类型)。

public class Classin {
	public static void main(String[] args) {
		byte byteArr[];
		char[] charArr;
		String str = " This is a test string";
		byteArr = str.getBytes();
		charArr = str.toCharArray();
		System.out.println(charArr);
		System.out.println(String.valueOf(3<2));
	}
}

运行结果:

 This is a test string
false

StringBuffer 类的常用方法

StringBuffer提供的方法最主要的有两组,一组是 append ,另一组是 insert 。

  1. append 方法

append 的 10 个方法主要在参数上有所不同,它可以把各种数据类型转换成字符串数据后添加进来(byte类型除外),其基本用法为: append(数据类型)。例如:

StringBuffer buffer = new StringBuffer();
buffer.append(100), 输出 buffer 时可调用 toString 方法将其转换为字符串。

  1. inset 方法
    insert 方法和 append 方法很类似, 唯一不同时多了个位置参数,位置参数必须大于等于 0 。 基本用法: insert(插入位置,数据类型)。

  2. 删除、替换与翻转方法
    public StringBuffer delete (int start, int end) //删除子串
    public StringBuffer deleteCharAt( int index) // 删除指定位置的字符
    public StringBuffer replace( int start , int end , String str) //替换子串
    StringBuffer reverse() //翻转字符串

你可能感兴趣的:(字符串类)