zoukankan      html  css  js  c++  java
  • 自定义截字串方法

    /**
     * 问题描述:
     * 		编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。
     *  	但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,
     *  	应该输出为“我ABC”而不是“我ABC+汉的半个”。
     * 解决方法:
     *  	对输入的字符串进行遍历,若为双字节则长度为2,若为单字节则长度为1
     *  	累计各个字符的长度,若可截得的字符长度小于等于给定的截取长度则添加,否则不处理
     * @author 常维军
     *		   创建时间:2012-8-8
     */
    public class TestSubstring {
    	public static void main(String[] args) {
    		System.out.println(mySubString("中国Winner加油!!!", 5));
    	}
    	
    	
    	/**
    	 * 截字符串
    	 * @param s 输入的字符串
    	 * @param length 截取长度
    	 * @return 规格化的截取字符子串
    	 */
    	public static String mySubString(String s, int length) {
    		if(s.length() < length) {
    			return s;
    		}
    		char c;
    		int count = 0;
    		StringBuilder sb = new StringBuilder();
    		
    		for(int i = 0; i < s.length(); i++) {
    			c = s.charAt(i);
    			int l = String.valueOf(c).getBytes().length;
    			if(l == 1) {
    				count = count + 1;
    			}
    			if(l == 2) {
    				count = count + 2;
    			}
    			if(count <= length){
    				sb.append(c);
    			}
    		}
    		
    		return sb.toString();
    	}
    }
    

  • 相关阅读:
    final关键字
    this and super
    java 内存分析之static
    java 内存分析之this
    java 内存分析之方法返回值二
    java 内存分析之方法返回值及匿名对象一
    java 内存分析之构造方法执行过程
    java 内存分析之堆栈空间
    java jvm概述及工作过程中的内存管理
    java 编译器
  • 原文地址:https://www.cnblogs.com/wjchang/p/3671587.html
Copyright © 2011-2022 走看看