Java 字串 String API 用法大全
String是一個比較特別的資料型態,它是一個物件類別( Object ),基本型態所對應的物件類別,可直接給於相同類型的值,而不需使用new來產生物件,而String資料型態跟基本型態一樣可以直接給於值,不過String沒有相對應的基本型態。
String在使用上十分普遍,大部份的資料型能都可以變成String存放。String本身是字串是使用utf8格式存放的,所以在計算字元時,一個中文字跟一個英文字都是算1,這點是跟其它程式語言不太一樣的。
String的宣告及初始化
“ ”雙引號內資料則為String資料型能
# //直接給值 String a = "123"; System.out.println("a:"+a); //new 一個String物件 String b = new String("456"); System.out.println("b:"+b); //先宣告再給值 String c ; c = "789"; System.out.println("c:"+c); //先宣告再new一個物件 String d; d = new String("321"); System.out.println("d:"+d);
字串的連結合併 字串的連結合併是利用 + 來使二個字串變成一個字串
# String z = a + b;//二字串變數相加,連結 System.out.println("二字串變數相加:"+z); String y = "789"+"123";//二字串相加,連結 System.out.println("二字串相加:"+y); String x = 456+"123" ;//數字加字串,連結 System.out.println("數字加字串:"+x);String.valueOf 基本型態轉換成字串 利用靜態函數String.valueOf(型態)可以把型能轉變成字串
# int num = 123; String Snum = String.valueOf(num); System.out.println("數字變字串:"+Snum); //數字變字串:123 double numf = 123.1; String Snumf = String.valueOf(numf); System.out.println("浮點變字串:"+Snumf); //浮點變字串:123.1基本型態物件.parse基本型態 字串轉換成基本型態 利用基本型態物件的函數parse,可以把字轉換成基本型態,如果無法轉換時會有Exception產生
# String Sint = "123"; int myint = Integer.parseInt(Sint); System.out.println("字串轉換成數字:"+myint); //字串轉換成數字:123 String SFloat = "123.1"; float myfloat= Float.parseFloat(SFloat); System.out.println("字串轉換成浮點數:"+myfloat); //字串轉換成浮點數:123.1 String SDouble = "123.2"; double mydouble= Double.parseDouble(SDouble); System.out.println("字串轉換成雙浮點數:"+mydouble); //字串轉換成雙浮點數:123.2 //其它型態以此類推...IndexOf 查詢字元位存在於字串內位置,以0為起始 IndexOf(字串),有找到字串時會回傳第一個字元的位置,IndexOf如查詢不到,則會回傳-1 字串內的內容存放可視為一連續空間,而每一個字元均存放在順序的位置上,如下表所示:
# String smart = "Smart"; int idx = smart.indexOf("m"); System.out.println("m所在位置:"+idx); //m所在位置:1 idx = smart.indexOf("rt"); System.out.println("rt所在位置:"+idx); //rt所在位置:3 idx = smart.indexOf("z"); System.out.println("z所在位置:"+idx); //z所在位置:-1 //中文部份 String chinese = "中華民國"; int cidx = chinese.indexOf("民"); System.out.println("民所在位置:"+cidx); //民所在位置:2 cidx = chinese.indexOf("中華"); System.out.println("中華所在位置:"+cidx); //中華所在位置:0 cidx = chinese.indexOf("台灣"); System.out.println("台灣所在位置:"+cidx); //台灣所在位置:-1replaceAll、replaceFirst字串取代 replaceAll (要被取代的字串,要取代的字串) 取代全部找到的”要被取代字串” replaceFirst (要被取代的字串,要取代的字串) 取代第一個找到的”要被取代字串” 其中replaceAll函數可以使用正規表示式來做整批有規則性的取代
# String replaceString = "blog.yslifes.com,blog.yslifes.com"; String replaced = replaceString.replaceAll("blog", "www"); System.out.println("All取代後的字串:"+replaced); //All取代後的字串:www.yslifes.com,www.yslifes.com replaced = replaceString.replaceFirst("blog", "www"); System.out.println("First取代後的字串:"+replaced); //First取代後的字串:www.yslifes.com,blog.yslifes.comString.format字串格式化 String.format是一個靜態函數,可以直接使用,將字串依設定的位置或格式回傳出來。 如需顯示三位數的字串數字,前方補零,則可利用以下方法:
# String formatStr = "%03d"; String formatAns = String.format(formatStr, 12); System.out.println("數字補零:"+formatAns); //數字補零:012CharAt取得指定字元 CharAt(位置)可取出指定位置的字元,中文算法與英文相同
# String charStr = "This is my Web site! blog.yslifes.com"; char c = charStr.charAt(3); System.out.println("英文第4位的字元是:"+c); //英文第4位的字元是:s charStr = "這是我的網站! blog.yslifes.com"; c = charStr.charAt(5); System.out.println("中文第5位的字元是:"+c); //中文第5位的字元是:站equals 二字串是否相等 equals可以比較二個字串或物件是否相同,以為Object原型就有的方法,字串要全數相同回傳值才會為true
# String aStr = "String A"; String bStr = "String B"; boolean Equal = aStr.equals(bStr); System.out.println("a與b是否相同:"+Equal); //a與b是否相同:false String cStr = "String A"; Equal = aStr.equals(cStr); System.out.println("a與c是否相同:"+Equal); //a與c是否相同:true String dStr = "String A "; Equal = aStr.equals(dStr); System.out.println("a與d是否相同:"+Equal); //a與d是否相同:falsesplit字串切割 split(指定符號) ,可依指定符號把字串分開成陣列
# String splitStr = "blog,yslifes,com"; String[] array = splitStr.split(","); for(int i = 0 ; i < array.length ; i ++) System.out.println("第"+i+"個:"+array[i]); /* 第0個:blog 第1個:yslifes 第2個:comsubstring取得指定字串範圍 substring(起始值 , 終始值),可以取出起始位置,到終止位置的字串,其中包含起始值,不包含終始值
# String subStr = "blog.yslifes.com"; String sub1 = subStr.substring(1, 4); System.out.println("第1到4的字串內容為:"+sub1); //第1到4的字串內容為:logtrim去空白 trim()可以去除左邊及右邊二則空白,不過在字串間空白並不會處理
# String HasEmptyStr = " ABC"; System.out.println("1空白去除:"+HasEmptyStr.trim()); //1空白去除:ABC HasEmptyStr = "ABC "; System.out.println("2空白去除:"+HasEmptyStr.trim()); //2空白去除:ABC HasEmptyStr = " ABC "; System.out.println("3空白去除:"+HasEmptyStr.trim()); //3空白去除:ABC HasEmptyStr = "ABC DEF"; System.out.println("4空白去除:"+HasEmptyStr.trim()); //4空白去除:ABC DEF字串長度 length()可以取回字串的長度
# String strLength = "長度是多少呢?"; System.out.println("字串長度:"+strLength.length()); //字串長度:7http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html#format(java.lang.String, java.lang.Object...) http://blog.yslifes.com/archives/638
0 意見:
張貼留言