String 类
跟字符串相关的
String 类
StringBuffer 类
StringBuilder 类
跟时间相关的- System 类
- Date 类
- SimpleDateFormat 类
- Calendar 类 跟数学计算相关的
- Math 类 数值大
- BigInteger 类与 BigDecimal 类
String类:构造字符串对象
- 常量对象:字符串常量对象是用双引号括起的字符序列。例如:”你好”、”12.97”、”boy”等。
- 字符串的字符使用Unicode字符编码,一个字符占两个字节
- String类较常用构造方法:
- String s1 = new String();
- String s2 = new String(String original);
- String s3 = new String(char[] a);
- String s4 = new String(char[] a,int startIndex,int count)
- String是一个final类,代表不可变的字符序列
- 字符串是不可变的。一个字符串对象一旦被配置,其内容是不可变的。
String 及String 的内存解析 String 类的常用方法 String 与包装类_字节数组_字符数组间的转换
package eighteen;
import org.junit.Test;
public class TestString {
/*
* 1.字符串 与基本数据类型、包装类之间转换
* ①字符串 --->基本数据类型、包装类:调用相应的包装类的parseXxx(String str);
* ①基本数据类型、包装类--->字符串:调用字符串的重载的valueOf()方法
*
* 2.字符串与字节数组间的转换
* ①字符串---->字节数组:调用字符串的getBytes()
* ②字节数组---->字符串:调用字符串的构造器
*
* 3.字符串与字符数组间的转换
* ①字符串---->字符数组:调用字符串的toCharArray();
* ②字符数组---->字符串:调用字符串的构造器
*/
@Test
public void test5(){
//1.字符串 与基本数据类型、包装类之间转换
String str1 = "123";
int i = Integer.parseInt(str1);
System.out.println(i);
String str2 = i + "";
str2 = String.valueOf(i);
System.out.println(str2);
System.out.println();
//2.字符串与字节数组间的转换
String str = "abcd123";
byte[] b = str.getBytes();
for(int j = 0;j < b.length;j++){
System.out.println((char)b[j]);
}
String str3 = new String(b);
System.out.println(str3);
System.out.println();
//3.字符串与字符数组间的转换
String str4 = "abc123中国人";
char[] c = str4.toCharArray();
for(int j = 0;j < c.length;j++){
System.out.println(c[j]);
}
String str5 = new String(c);
System.out.println(str5);
}
/**
字符串对象修改:
* public String substring(int startpoint) :从 startpoint 开始打印后边字符
public String substring(int start,int end):返回从start开始到end结束的一个左闭右开(左包括右不包括)的子串。start可以从0开始的。
pubic String replace(char oldChar,char newChar)//把旧字符全部改为新字符
public String replaceAll(String old,String new)
public String trim():去除当前字符串中首尾出现的空格,若有多个,就去除多个。
public String concat(String str):连接当前字符串与str
public String[] split(String regex):按照regex将当前字符串拆分,拆分为多个字符串,整体返回值为String[]
*/
@Test
public void test4() {
String str1 = "桂林理工大学博文管理学院桂林";
String str2 = "桂林理工大学";
// String str3 = str1.substring(6);
String str3 = str1.substring(2, 5);
System.out.println(str3);
System.out.println(str1);
String str4 = str1.replace("桂林", "北京");
System.out.println(str4);// 北京理工大学博文管理学院北京
System.out.println(str1);// 桂林理工大学博文管理学院桂林
String str5 = " abc d ";
String str6 = str5.trim();
System.out.println("----" + str6 + "----");
System.out.println("----" + str5 + "----");
String str7 = str1.concat(str2);
System.out.println(str1);
System.out.println(str7);
System.out.println();
String str8 = "abc*d-e7f-ke";
String[] strs = str8.split("-");
for(int i = 0;i < strs.length;i++){
System.out.println(strs[i]);
}
}
/**
字符串对象操作:
* public int length():返回长度,调用的是方法,在数组中是调用属性。
* public char charAt(int index):返回在指定 index 位置的字符。index从0开始
* public boolean equals(Object anObject):比较两个字符串是否相等。相等返回 true。否则返回 false
* public int compareTo(String anotherString):返回一个字符串跟另一个字符串不同值差值的 int 值
* public int indexOf(String s):返回 s 字符串在当前字符串中首次出现的位置。若没有,返回-1
* public int indexOf(String s ,int startpoint):返回 s 字符串从当前字符串 startpoint 位置开始的,首次出现的位置。
* public int lastIndexOf(String s):返回 s 字符串最后一次在当前字符串中出现的位置。若无,返回-1
* public int lastIndexOf(String s ,int startpoint)
* public boolean startsWith(String prefix):判断当前字符串是否以prefix开始。
* public boolean endsWith(String suffix):判断当前字符串是否以suffix结束。
* public boolean regionMatches(int firstStart,String other,int otherStart ,int length):
* 判断当前字符串从firstStart开始的子串与另一个字符串other从otherStart开始,length长度的字串是否equals
*/
@Test
public void test3() {
String str1 = "abccdefghijkbcc";
String str2 = "bcc";
String str3 = "jkbcc";
System.out.println(str2.length());//3
System.out.println(str1.charAt(10));//j
System.out.println(str1.equals(str2));//false
System.out.println(str2.equals("abcc"));//false
System.out.println(str1.compareTo(str2));//不同值的差值 -1
System.out.println(str1.indexOf(str2));//bcc首次出现在 1 的位置
System.out.println(str1.indexOf(str2, 5));
System.out.println(str1.lastIndexOf(str2));//bcc 最后出现在 12 的位置
System.out.println(str1.startsWith("abcd"));//false
System.out.println(str1.regionMatches(10, str3, 0, str3.length()));//true
}
/*
* String:代表不可变的字符序列。底层使用char[]存放。
* String 是final的。
*/
@Test
public void test1(){
String str1 = "JavaEE";
String str2 = "JavaEE";
String str3 = new String("JavaEE");
String str4 = "JavaEE" + "Android";
String str5 = "Android";
String str6 = str1 + str5;
str5 = str5 + "Handoop";
String str7 = str6.intern();
String str8 = "JavaEEAndroid";
System.out.println(str1 == str2);//true
System.out.println(str1 == str3);//false
System.out.println(str1.equals(str3));//true
System.out.println(str4 == str6);//false
System.out.println(str4.equals(str6));//true
System.out.println(str7 == str4);//true
System.out.println(str4 == str8);//true
Person p1 = new Person("AA");
Person p2 = new Person("AA");
System.out.println("^_^"+ (p1.name == p2.name));//true
}
}
class Person{
String name;
Person(String name){
this.name = name;
}
}
韧桂 2020-01-10