1.String的概述

前言

这篇文章仅探讨String类,先不了解StringBuilder和StringBuffer等支持可变字符串的类。

1.1String在java中是一个类,String 类代表字符串。Java 程序中的所有字符串字面值(如 “abc” )都作为此类的实例实现。

  • 例如:String str = “abc”;

2.2字符串是常量;值在创建之后不能更改。String 对象是不可变的,这里的不可变是"abc"这个字符串一旦定义,“abc"就不可改变,不能在后面加"d”,变成"abcd",等后面我发布另一篇文章学习怎么才能对定义的字符进行改变。

2.String类的方法

这里我们把方法分成几类,构造、判断、获取、转换等等几类。

先来第一类

1.构造方法(了解)
  • .用字节数组通过构造变成字符串。
byte[] arr1 = {97,98,99};
//通过使用平台的默认字符集解码指定的 byte 数组,构造一个新的 String。
String s2 = new String(arr1);  //解码-计算机看得懂转为我们看懂的  97->a  98->b  99->c
 System.out.println(s2);//结果为  abc
  • 还可以定义索引起始位置和长度参数。
byte[] arr2 = {97,98,99,100,101,102,103};
String s3 = new String(arr2,2,3); //2代表的从索引2开始,3代表长度。 
System.out.println(s3);  //结果:cde
  • 字符数组转换成字符串。
char[] arr3 = {'a','b','c'};  
String s4 = new String(arr3);
System.out.println(s4); //结果:abc
  • 同样的也有定义索引起始位置和长度参数。
char[] arr4 ={'a','b','c','d','e'};
String s5 = new String(arr4,2,3);
System.out.println(s5); //结果:cde
  • 还有直接创建对象定义
String s6 = new String("abc");

看到这很多朋友可能想为啥不直接String str = ”abc“;这不更方便吗?
它们在底层其实是有区别的,在不同条件下,用不同方法。

2.常用的判断方法
* boolean equals(Object obj)  //比较字符串内容是否相同,区分大小写
 //例:s1.equals(s2)  s1和s2为字符串
*  boolean equalsIgnoreCase(String str)  //比较字符串内容是否相同,忽略大小写
* boolean contains(String str)  //判断字符串是否包含小字符串
* boolean stareWith(String str)  //判断字符串是否以某个指定字符串开头
* boolean endsWith(String str)  //判断字符串是否以某个指定字符串结尾
* boolean  isEmpty()  //判断字符串是否为空
* ""(空字符串)和null的区别
* ""(空字符串)是字符串对象,null不能调用任何方法,用这个方法会出错。
3.常用的获取方法
* int length()  //获取字符串长度
* char cahrAt(int index) //获取指定索引位置的字符
* int indexOf(int ch)  //返回指定字符在此字符串中第一次出现处的索引
* int indexOf(String str)  //返回指定字符串在此字符串中第一次出现处的索引
* int indexOf(int ch,int fromIndex)    //返回指定字符串从指定位置后第一次出现处的索引
* int indexOf(String str, int fromIndex)   //返回指定字符串从指定位置后第一次出现处的索引
* String substring(int start)   //从指定位置开始截取字符串,默认到末尾
* String substring(int start, int end)  //从指定位置开始,指定位置结束。截取字符串
4.String转换功能
* bytr[] getBytes();  //使用指定的字符集将此 String 编码为 byte 序列,并将结果存储到一个新的 byte 数组中。
//列子:byte[] b = s1.getBytes();
* cahr[] toCharArray; //将字符串转化为新的字符数组
* static String valueOf(char[] chs)  //把字符数组转化为字符串,封装了String的一个构造方法
* static String valueOf(int i)  //把int类型的数据转化为字符串
	//valueOf可以把任意类型的数据转成字符串
* String toLowerCase() //字符串转成小写
*String toUppererCase()  //字符串转成大写
*String concat(String str)  //字符串拼接 
//列子:String s3 = s1.concat(s2);
5.其他功能
  • A String的替换功能
  • String replace (char old,char new)
  • String replace( String old,String new)
  • B String去除字符串两边空格
  • String trim()
  • String 按字典顺序比较两个字符串
  • int compareTo(String str)//码表值来比较 unicode
  • int compareToIgnoreCase(String str)
最近在学Java,把一些笔记记录一下。方法不难,学会的最主要练,走一遍就知道是怎么回事,最重要还是用得多了,很自然的就会了。