常用格式(字串,數字,正規表示式)

1.字串,字串在顯示資訊內容常常使用,除了 String 還有 StringBuffer , StringBuilder 可以使用

   1:  package Test_Format;
   2:   
   3:  public class Test_Format {
   4:   
   5:      /**
   6:       * @param args
   7:       */
   8:      public static void main(String[] args) {
   9:          // TODO Auto-generated method stub
  10:   
  11:          /**字串使用 String */
  12:          String s1;
  13:          s1 = "AbC";
  14:          s1+="123";
  15:          s1 = s1.concat("dEf");//使用concat,注意  = 符號
  16:          s1.concat("ghi");//沒有效果,不會錯誤
  17:          s1 = s1.toUpperCase();//轉大寫
  18:          /**取得字串內容*/
  19:          char[] tempcArr1 = new char[s1.length()];
  20:          for(int i=0;i<s1.length();i++)
  21:          {
  22:              char tempc = s1.charAt(i);
  23:  //            System.out.print(tempc);ABC123DEF
  24:              tempcArr1[i] = s1.charAt(i);
  25:  //            System.out.print(tempcArr1[i]);ABC123DEF
  26:          }
  27:          for(char tempc : s1.toCharArray())
  28:          {
  29:  //            System.out.print(tempc);ABC123DEF
  30:          }
  31:          byte[] bArr1 = s1.getBytes();
  32:          for(byte tempb : bArr1)
  33:          {
  34:  //            System.out.print((char)tempb);ABC123DEF
  35:          }
  36:  //        System.out.println();
  37:  //        System.out.println(s1.length());//9 字串長度
  38:          
  39:          
  40:          /**StringBuffer使用,比String效率更好 ,Thread-Safe*/
  41:          StringBuffer sb = new StringBuffer("123456");
  42:          sb.append("abc");
  43:          sb.delete(0, 2);//注意 2 會減1,所以會去除 ab
  44:          String temps = sb.substring(0, 1);//注意 substring會回傳string
  45:          char[] tempcArr2 = new char[sb.length()];
  46:          for(int i=0; i<sb.length(); i++)
  47:          {
  48:              tempcArr2[i] = sb.charAt(i);
  49:              System.out.print(tempcArr2[i]);//3456abc
  50:          }
  51:          System.out.println(sb.length());//5 字串長度
  52:          
  53:          /**StringBuilder使用 ,和StringBuffer類似,效率最高,但不是Thread-Safe*/
  54:          StringBuilder sbr = new StringBuilder("abcdef");
  55:          System.out.println(sbr.length());//6
  56:          sbr.reverse();//反轉
  57:          char[] tempcArr3 = new char[sbr.length()];
  58:          for(int i=0; i<sbr.length(); i++)
  59:          {
  60:              tempcArr3[i] = sbr.charAt(i);
  61:              System.out.print(tempcArr3[i]);//fedcba
  62:          }
  63:          
  64:      }
  65:   
  66:  }

2.數字顯示格式,DecimalFormat,可自訂數字顯示的格式化,日期格式DateFormat,可以不同的格式取得現在日期和時間

   1:  package Test_Format;
   2:   
   3:  import java.text.*;//需要的類別套件
   4:  import java.util.*;
   5:   
   6:  public class Test_DecimalFormat {
   7:   
   8:      /**
   9:       * @param args
  10:       */
  11:      public static void main(String[] args) {
  12:          // TODO Auto-generated method stub
  13:   
  14:          /**DecimalFormat使用*/
  15:          int i1 = 1234567;
  16:          double d1 = 123456.789;
  17:          
  18:          //正常顯示
  19:          System.out.println(i1);//1234567
  20:          System.out.println(d1);//123456.789
  21:          
  22:          //使用 DecimalFormat 預設顯示
  23:          DecimalFormat df = new DecimalFormat();
  24:          System.out.println(df.format(i1));//1,234,567
  25:          System.out.println(df.format(d1));//123,456.789
  26:          
  27:          //在實體化時可自訂格式
  28:          df = new DecimalFormat("###,#####");
  29:          System.out.println(df.format(i1));//12,34567
  30:          df = new DecimalFormat("000,00000");
  31:          System.out.println(df.format(i1));//012,34567
  32:          df = new DecimalFormat("###,####.##");//小數點
  33:          System.out.println(df.format(d1));//12,3456.79
  34:          
  35:          /**Date使用*/
  36:          Date date = new Date();//取得今天日期時間
  37:          System.out.println(date.getTime());//以毫秒為單位的數值
  38:          
  39:          /**DateFormat使用*/
  40:          DateFormat df2 = DateFormat.getDateInstance(0);//取得日期實體(預設格式)
  41:          System.out.println(df2.format(date));
  42:          df2 = DateFormat.getTimeInstance(3,Locale.TAIWAN);//取得時間實體(short格式)
  43:          System.out.println(df2.format(date));
  44:          df2 = DateFormat.getDateTimeInstance(3, 3);//取得日期時間實體
  45:          System.out.println(df2.format(date));
  46:          
  47:      }
  48:   
  49:  }

3.正規表示式 Pattern,正規表示式常用在資料的搜尋和比對,使用方法如下

   1:  package Test_Format;
   2:   
   3:  import java.util.regex.Matcher;//需要的套件類別
   4:  import java.util.regex.Pattern;//需要的套件類別
   5:   
   6:  public class Test_Pattern {
   7:   
   8:      /** 
   9:       * @param args
  10:       */
  11:      public static void main(String[] args) {
  12:          // TODO Auto-generated method stub
  13:          
  14:          /**Pattern使用*/
  15:          Pattern p1 = Pattern.compile("abc");//基本的正規表示式
  16:          Pattern p2 = Pattern.compile("abc.");//.代表可後接任一個字元
  17:          Pattern p3 = Pattern.compile("abc*");//*代表可後接多個字元
  18:          Pattern p4 = Pattern.compile("abc[def]");//[def]代表可後接[ ]中字元,任一個
  19:          Pattern p5 = Pattern.compile("abc[d-f]");//-代表範圍所以從d到f都可
  20:          Pattern p6 = Pattern.compile("abc[de|fg|hi]");//|代表分隔,所以後接 de fg hi
  21:          
  22:          /**Matcher使用*/
  23:          Matcher m1 = p1.matcher("abc");
  24:          System.out.println(m1.matches());//true
  25:          m1 = p2.matcher("abc");
  26:          System.out.println(m1.matches());//false
  27:          m1 = p3.matcher("abc123");
  28:          System.out.println(m1.matches());//false
  29:          m1 = p4.matcher("abcg");
  30:          System.out.println(m1.matches());//false
  31:          m1 = p5.matcher("abcf");
  32:          System.out.println(m1.matches());//true
  33:          m1 = p6.matcher("abcdef");
  34:          System.out.println(m1.matches());//true
  35:          
  36:          /**find使用*/
  37:          String tempStr = "abc is a english word,abc";
  38:          Pattern p7 = Pattern.compile("abc");
  39:          Matcher m2 = p7.matcher(tempStr);
  40:          while(m2.find())//尋找指定字元 abc
  41:          {
  42:              System.out.println(m2.start()+"~"+(m2.end()-1));//0~2 22~24
  43:          }
  44:          
  45:          
  46:          
  47:      }
  48:   
  49:  }