如何学好java

如何学好java,其实很简单,只要用心体会,慢慢积累!
posts - 106, comments - 7, trackbacks - 0, articles - 3
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理
目: 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。   但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”。
  1. package com.sw.suanfa.first.ten;  
  2. /** 
  3.  * 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。   
  4.  *  但是要保证汉字不被截半个, 
  5.  *  如“我ABC”4,应该截为“我AB”, 
  6.  *  输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”。  
  7.  * @author songwei 
  8.  * 
  9.  *我的处理方式:截取字符串的一个字符,加入StringBuffer中,并取其字节数,并入当前获取字符的总长度中, 
  10.  *如果总长度大于等于输入的长度,则返回StringBuffer的toString值。 
  11.  *getSubString方法传入encoding值。UTF-8中文占3个字节,GBK占2个。结果有所不同,所以还是传入较好。 
  12.  *没有通过判断charAt的值来判定是否为中文等特殊字符。 
  13.  *不知道我这种方式是否正确。【未经过详细测试】 
  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 截取字节数 
             * 
    @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) + "");
    }

    如题

只有注册用户登录后才能发表评论。


网站导航: