Java入門系列-13-String 和 StringBuffer
阿新 • • 發佈:2018-12-14
這篇文章帶你學會字串的日常操作
String類
字串在日常生活中無處不在,所以掌握字串的使用至關重要。 使用 String 物件儲存字串,String 類位於 java.lang 包中,java.lang 不需要我們手動匯入可以直接使用。
敲一敲:String物件儲存字串
String s="Hello world";
String s=new String();
String s=new String("Hello world");
下面列出一些常用的方法
方法 | 介紹 |
---|---|
length() |
獲取字串中字元的個數 |
equals() |
比較兩個字串物件的內容是否一致 |
equalsIgnoreCase() |
忽略大小寫比較 |
toLowerCase() |
轉小寫 |
toUpperCase() |
轉大寫 |
concat() |
向字串後面拼接字串並返回一個新字串 |
indexOf() |
搜尋第一個出現的字元或字串,從左往右 |
lastIndexOf() |
與indexOf搜尋方向相反 |
substring() |
提取指定位置開始的字串或指定開始和結束之間的字串 |
trim() |
返回去除字串前後的空格後的副本 |
split() |
按照指定字串分隔,返回字串陣列 |
敲一敲:length 方法的使用
import java.util.Scanner; public class DemoLength { public static void main(String[] args) { Scanner input=new Scanner(System.in); System.out.println("請輸入使用者名稱:"); String name=input.next(); if (name.length()<4) { System.out.println("使用者名稱不能小於4位"); }else { System.out.println("使用者名稱可以使用,長度為:"+name.length()); } } }
==
和 equals
不能混用,==
判斷兩個字串在記憶體中的地址,在任何地方使用 new 都會產生新的記憶體地址。
敲一敲:體會區別和字串的不可變性
public class DemoString { public static void main(String[] args) { String a="張三"; String b="張三";//a與b是同一個物件,未變 System.out.println(a==b);//true System.out.println(a.equals(b));//true String c=new String("張三");//新的字串物件 System.out.println(a==c);//false System.out.println(a.equals(c));//true } }
比較兩個字串的值不能使用 == ,應該使用 equals 方法比較
敲一敲:不考慮大小寫比較1
import java.util.Scanner;
//忽略大小比較方法1
public class DemoEquals1 {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
String str="";
do {
System.out.println("繼續輸入 Yes");
str=input.next();
} while (str.toLowerCase().equals("yes")||str.toUpperCase().equals("YES"));
}
}
敲一敲:不考慮大小寫比較2
import java.util.Scanner;
public class DemoEquals2 {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
String str="";
do {
System.out.println("繼續輸入 Yes");
str=input.next();
} while (str.equalsIgnoreCase("yeS"));
}
}
敲一敲:對比 + 拼接和 concat() 拼接
public class DemoConcat {
public static void main(String[] args) {
String a="hello";
String b=a+" world";
System.out.println(b);
String c=b.concat(" test");//b不會變
System.out.println(b);
System.out.println(c);
}
}
敲一敲:indexOf 和 lastIndexOf 的使用
import java.util.Scanner;
public class TestIndexOf {
public static void main(String[] args) {
System.out.println("請輸入郵箱:");
Scanner input=new Scanner(System.in);
String email=input.next();
if(email.indexOf("@")==-1) {
System.out.println("郵箱格式有誤!");
}
String text="[email protected]@cc";
System.out.println("indexOf:"+text.indexOf("@"));
System.out.println("lastIndexOf:"+text.lastIndexOf("@"));
}
}
敲一敲:使用substring
import java.util.Scanner;
public class DemoSubstring {
public static void main(String[] args) {
//獲取郵箱使用者名稱
Scanner input=new Scanner(System.in);
System.out.println("輸入完整郵箱:");
String email=input.next();
int index=email.indexOf("@");
String username=email.substring(0,index);
System.out.println("使用者名稱:"+username);
}
}
敲一敲:使用 trim
public class DemoTrim {
public static void main(String[] args) {
String text=" he llo ";
System.out.println(text.trim());
}
}
敲一敲:使用 split
public class DemoSplit {
public static void main(String[] args) {
String text="hello,world,java";
String[] result=text.split(",");
for (int i = 0; i < result.length; i++) {
System.out.println(result[i]);
}
}
}
StringBuffer類與常用方法
對字串頻繁修改(如字串連線)時,使用 StringBuffer 類可以大大提高程式執行效率。
敲一敲:使用 StringBuffer 拼接字元
public class DemoStringBuffer {
public static void main(String[] args) {
StringBuffer sb=new StringBuffer("hello");
sb.append("word");
System.out.println(sb.toString());
StringBuffer sb2=new StringBuffer();
sb2.append("hello");
sb2.append("word");
System.out.println(sb2);
}
}
敲一敲:使用 insert 方法
import java.util.Scanner;
public class TestInsert {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
System.out.println("請輸入一串數字:");
String nums=input.next();
StringBuffer str=new StringBuffer(nums);
for (int i = str.length()-3; i >0; i-=3) {
str.insert(i, ",");
}
System.out.println(str);
}
}
搜尋關注公眾號「享智同行」,第一時間獲取技術乾貨