JAVA字串類string類
阿新 • • 發佈:2018-12-18
package com.study.demo;
public class StringDemo {
public static void main(String[] args) {
/**
* 字串2種初始化的比較
*
* String s = new String("java");
* 這種初始化方法會產生2(1)個物件,一個在常量池中,一個在堆中
*
* String s = "hello java";
* 這種初始化方法會產生1(0)個物件,在常量池中
*
* 當常量池中已存在字串,括號中成立
*/
// 建立2個物件,一個物件在堆中,一個物件在字串常量池中
String s1 = new String("java");
// 建立1個物件,因為字串常量池中已經有了"java",所以只在堆中建立一個物件
String str1 = new String("java");
// 建立1個物件,這個物件在字串常量池中
String s2 = "hello java";
// 建立0個物件,因為字串常量池中已經有了"hello java",所以str2直接引用常量池中物件
String str2 = "hello java";
// 一個字元一個字元的比較,如果 s1 和 s2 相同返回 0
System.out.println(s2.compareTo(str2));
String string1 = new String("hello");
String string2 = "hello";
// == 比較的是地址
System.out.println(string1 == string2); // false
// String類中的equals比較的是內容,因為String類重寫了equals方法
System.out.println(string1.equals(string2)); // true
// 字串長度
String string3 = "my world is beautiful";
System.out.println(string3.length());
// 字元陣列轉換成字串,
char[] ch = {'j', 'a', 'v', 'a'};
String s3 = new String(ch);
System.out.println(s3); // java
// 數值轉換成字串
String.valueOf(1234); // 底層是用 Integer.toString(i)實現的
// 字串轉化為字元陣列
ch = s3.toCharArray();
// 字串轉換成char型別,()中是字串下標索引
String s4 = " hello java ";
char c = s4.charAt(1); // h
// 字串去除首尾的空格
String s5 = s4.trim(); // "hello java"
System.out.println(s5);
// 字串替換,可以字元替換
String s6 = s4.replace(" ","!"); // "!hello!java!"
System.out.println(s6);
// 測試此字串是否以指定的字首開頭
String s7 = "hello java hello java";
System.out.println(s7.startsWith("hello")); // true
// 測試此字串是否以指定的字尾結尾
System.out.println(s7.endsWith("java")); // true
// 返回指定字元第一次出現的字串內的索引,如果是字串返回字串第一個字元的下標
System.out.println(s7.indexOf('e')); // 1
// 返回指定字元的最後一次出現的字串中的索引,如果是字串返回字串第一個字元的下標
System.out.println(s7.lastIndexOf("java")); // 17
// 字串分割,下面例子是把字串s8按照空格分割成一個字串陣列
String s8 = "CR7 is a football player";
String[] strs = s8.split(" ");
// 擷取字串(開始索引,結束索引)不包括結束索引,包括開始索引
String s9 = "0123456789";
System.out.println(s9.substring(5)); // 56789
System.out.println(s9.substring(2, 7)); // 23456
}
}