一、String類
在java中字串作為String類的實體來處理
-
聲名字串(java中,字串必需包含在一對雙引號""之內)
String str;
char a[] = {'g','o','o','d'}; //字符陣列
String s = new String(a); //等價于 String s = new String("good");
char a[] = {'s','t','u','d','e','n','t'};
String s = new String(a, 2, 4); //等價于 String s = new String("uden");
String str1,str2;
str1 = "We are student";
str2 = "We are student";
使用"+"連接多個字串(java中一句相連的字串不能分開在兩行中寫,如果需要在兩行中寫,在第一行行尾處加上"+"連接)
String str3 = str1 + str2;
字串也可以同其他基本資料型別進行連接,連接會將這些資料直接轉換成字符串,
public static void example4() {
int booktime = 4;
float practice = 2.5f;
System.out.println("我每天花費" + booktime + "小時看書;" + practice + "小時上機練習;");
System.out.println("我每天花費" + booktime + "小時看書;" + (practice+booktime) + "小時上機練習;");
}
二、獲取字串資訊
字串作為物件,可通過相應的方法獲取字串的有效資訊
String str = "we are student";
int size = str.length();
indexOf(); //回傳字符或字串在另一字串中首次出現的位置
lastIndexOf(); //回傳字符或字串在另一字串中最后一次出現的位置
public static void example5() {
String stu = "we are students";
System.out.println(stu.indexOf('t'));
System.out.println(stu.indexOf("tu"));
System.out.println(stu.lastIndexOf('t'));
System.out.println(stu.length());
}
//使用charAt()方法可將指定索引處的字符回傳
String str = "hello world";
char mychar = str.charAt(6);
三、字串操作
//String類的substring()方法可以對字串進行截取
//substring(int beginIndex, int endIndex);
String str = "hello world";
System.out.println(str.substring(6,9));
str = "hello world";
System.out.println(str.substring(6));
//str.trim();
String str = " java class ";
System.out.println(str.length());
str = str.trim();
System.out.println(str.length());
//str.replace(char oldChar, char newChar);
String str = "I like php";
str = str.replace("php", "java");
System.out.println(str);
//判斷字串是否以指定的內容開始或結束,回傳boolean
//startsWith();
//endsWith();
String str = "I like php";
System.out.println(str.startsWith("I"));
System.out.println(str.startsWith("i"));
System.out.println(str.endsWith("php"));
-
對字串物件進行比較不能簡單的使用比較運算子"==",因為比較運算子是比較兩個字串的地址是否相同,即使兩個字串的內容相同,兩個物件的記憶體地址也是不同的,使用比較運算子仍然會回傳false
-
如果兩個字串具有相同的字符長度,使用equals()方法進行比較時,回傳true
//equalsIgnoreCase(); 不區分大小寫
public static void example11() {
String str1 = new String("hello java");
String str2 = new String("hello java");
System.out.println(str1 == str2); //false
System.out.println(str1.equals(str2)); //true
str1 = "hello java";
str2 = "hello java";
System.out.println(str1 == str2); //true
System.out.println(str1.equals(str2)); //true
str1 = "hello java";
str2 = "hello JAVA";
System.out.println(str1 == str2); //false
System.out.println(str1.equals(str2)); //false
System.out.println(str1.equalsIgnoreCase(str2)); //true
}
//compareTo();
public static void example12() {
String a = "a";
String c = "c";
String e = "e";
System.out.println(c.compareTo(a)); //2
System.out.println(c.compareTo(e)); //-2
}
//toLowerCase();
//toUppercase();
public static void example13() {
String str = "abcDEFG";
System.out.println(str.toLowerCase());
System.out.println(str.toUpperCase());
}
//split(); 按指定的分割字符或字串對內容進行分割,并將分割后的結果放在字串陣列中
//str.split(String sign);
//str.split(String sign, int limit);
public static void example14() {
String str = "192.168.0.1";
String[] firstArray = str.split("\\.");
String[] secondArray = str.split("\\.", 3);
for(String x : firstArray) {
System.out.print("["+x+"]"); //[192][168][0][1]
}
for(String x : secondArray) {
System.out.print("["+x+"]"); //[192][168][0.1]
}
}
//String類的靜態format()方法用于創建格式化的字串
//str.format(String format, Object...args) //新字串使用本地語言環境,制定字串格式和引數生成格式化的新字串,
//str.format(Local l,String format,Object...args) //使用指定的語言環境,制定字串格式和引數生成格式化的字串,
String str = String.format("%d", 400 / 2); //將結果以十進制格式顯示
String str2 = String.format("%b", 3 > 5); //將結果以boolean型顯示
String str3 = String.format("%x", 200); //將結果以十六進制格式顯示
System.out.println(str); //200
System.out.println(str2); //false
System.out.println(str3); //c8
Date date = new Date();
System.out.printf("全部日期和時間資訊:%tc%n",date);
System.out.printf("年-月-日格式:%tF%n",date);
System.out.printf("月/日/年格式:%tD%n",date);
System.out.printf("HH:MM:SS PM格式(12時制):%tr%n",date);
System.out.printf("HH:MM:SS格式(24時制):%tT%n",date);
System.out.printf("HH:MM格式(24時制):%tR",date);
//通常被用于判斷陳述句中,用來檢查某一字串是否滿足某一格式
//matches();
public static void example17() {
String regex = "^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+(\\.[a-zA-Z0-9-]+)*\\.[a-zA-Z0-9]{2,6}$";
String str1 = "asdfagearg";
String str2 = "aegagewg@sgesg";
String str3 = "
[email protected]";
System.out.println(str1.matches(regex)); //false
System.out.println(str2.matches(regex)); //false
System.out.println(str3.matches(regex)); //true
}
字符序列String-Builder類,大大提高頻繁增加字串的效率,大量的字串拼接等操作時使用,
-
append(); 向字串生成器中追加內容
-
insert(); 向字串生成器中指定位置插入資料內容
-
delete(); 移除此序列的子字串中的字符
public static void example18(){
StringBuilder str = new StringBuilder("aaa");
str = str.append("->bbb");
System.out.println(str.toString()); //aaa->bbb
str = str.insert(3, "->ccc");
System.out.println(str.toString()); //aaa->ccc->bbb
str = str.delete(3, 8);
System.out.println(str.toString()); //aaa->bbb
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/190349.html
標籤:Java
上一篇:為什么微服務一定要有網關?
下一篇:docker 常用命令