如何學好java

          如何學好java,其實很簡單,只要用心體會,慢慢積累!
          posts - 106, comments - 7, trackbacks - 0, articles - 3
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理
          目: 編寫一個截取字符串的函數(shù),輸入為一個字符串和字節(jié)數(shù),輸出為按字節(jié)截取的字符串。   但是要保證漢字不被截半個,如“我ABC”4,應(yīng)該截為“我AB”,輸入“我ABC漢DEF”,6,應(yīng)該輸出為“我ABC”而不是“我ABC+漢的半個”。
          1. package com.sw.suanfa.first.ten;  
          2. /** 
          3.  * 編寫一個截取字符串的函數(shù),輸入為一個字符串和字節(jié)數(shù),輸出為按字節(jié)截取的字符串。   
          4.  *  但是要保證漢字不被截半個, 
          5.  *  如“我ABC”4,應(yīng)該截為“我AB”, 
          6.  *  輸入“我ABC漢DEF”,6,應(yīng)該輸出為“我ABC”而不是“我ABC+漢的半個”。  
          7.  * @author songwei 
          8.  * 
          9.  *我的處理方式:截取字符串的一個字符,加入StringBuffer中,并取其字節(jié)數(shù),并入當前獲取字符的總長度中, 
          10.  *如果總長度大于等于輸入的長度,則返回StringBuffer的toString值。 
          11.  *getSubString方法傳入encoding值。UTF-8中文占3個字節(jié),GBK占2個。結(jié)果有所不同,所以還是傳入較好。 
          12.  *沒有通過判斷charAt的值來判定是否為中文等特殊字符。 
          13.  *不知道我這種方式是否正確。【未經(jīng)過詳細測試】 
          14.  */ 
             public class SubStringWithChina {  
                    
            public static void main(String[] args) throws Exception{  
                          
                        String a 
            = "我ABC漢DEF" ;  
                        
            int len = 6 ;  
                        String encoding 
            = "UTF-8" ;  
                          
                        System.out.println( getSubString(a, len,encoding) );  
                        a 
            = "我ABC";  
                        len 
            = 4 ;  
                        encoding 
            = "gbk" ;  
                        System.out.println( getSubString(a, len,encoding) );  
                    }  
                      
                    
            /** 
                     *  
                     * 
            @param str 傳入字符串 
                     * 
            @param len 截取字節(jié)數(shù) 
                     * 
            @param encoding 編碼方式 
                     * 
            @return 返回截取后的字符串 
                     * 
            @throws Exception 
                     
            */  
                    
            public static String getSubString(String str,int len,String encoding) throws Exception{  
                        
            if(str == null || str.length()<1return null ;  
                        
            if(len<1return null ;  
                        StringBuffer sb 
            = new StringBuffer();  
                        
            int all = 0 ;  
                        
            for(int i=0;i<str.length();i++){  
                            String tmp 
            = str.substring(i,i+1);  
                            sb.append(tmp);  
                            
            byte[] tmpB = tmp.getBytes(encoding);  
                            all 
            +=tmpB.length ;  
                            
            if(all>=len){  
                                
            break ;  
                            }  
                        }  
                        
            return sb.toString() ;  
                    }  
                }
          15. 判斷字符串中是否含有漢字:

             String str = "test中文漢字";
            String regEx = "[\\u4e00-\\u9fa5]";

            /**
            * 判斷有沒有中文
            */
            if (str.getBytes().length == str.length()) {
             System.out.println("無漢字");
            } else {
             System.out.println("有漢字");
            }

            /**
            * 如果有則打印出來
            */
            Pattern p = Pattern.compile(regEx);
            Matcher m = p.matcher(str);
            while (m.find()) {
             System.out.print(m.group(0) + "");
            }

            如題
          主站蜘蛛池模板: 宜春市| 义乌市| 洪泽县| 唐海县| 临洮县| 吐鲁番市| 青岛市| 林周县| 多伦县| 兴宁市| 奉化市| 襄城县| 华容县| 抚顺县| 石狮市| 清水县| 西贡区| 新河县| 景洪市| 中江县| 始兴县| 阿拉善左旗| 滦南县| 海丰县| 溧阳市| 名山县| 丰顺县| 霸州市| 鲁山县| 福泉市| 洪湖市| 凤翔县| 南昌县| 荔波县| 尚志市| 乌兰浩特市| 余姚市| 青岛市| 进贤县| 晋江市| 敦化市|