`
duan1823a
  • 浏览: 89574 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

按字节截取字符串、随即生成汉字

阅读更多
/**
	 * 按字节截取字符串,不取不完整的字符(从一开始 )
	 * @param str 被截取的数
	 * @param start 开始字节数
	 * @param limit 截取的字节数量
	 * @return
	 */
	public static String subStringByType(String str, int start, int limit){
		start = --start;	// 从一开始 
		
		byte[] ss = str.getBytes();
		
		int x = 0;
		while(ss[start-x] < 0){
			if(start-x == 0){
				x++;
				break;
			}
			x++;
		}
		if(x%2 == 0 && x != 0){
			start = --start;
			x = ++x;	// start 左移,那 x 循环次数也得增加
		}

		int y = 0;
		while(ss[start+limit-1-y] < 0){
			if(limit-1-y == 0){
				y = y+x;
				break;
			}
			y++;
		}
		
		if(y%2 != 0)
			limit = ++limit;
		
		return new String(ss, start, limit);
	}
	
	/**
	 * 随即生成汉字
	 * @return
	 */
	public static String getChinese(){  
        Random random=new Random();  
        String ctmp="";  
        String[] rBase={"0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"};  
        //生成第一位区码  
        int r1=random.nextInt(3)+11;  
        String str_r1=rBase[r1];  
          
        //生成第二位区码  
        int r2;  
        if(r1==13){  
            r2=random.nextInt(7);  
        }else{  
            r2=random.nextInt(16);  
        }  
        String str_r2=rBase[r2];  
        //第三位的位码  
        int r3=random.nextInt(6)+10;  
        String str_r3=rBase[r3];  
        //第四位的位码  
        int r4;  
        if(r3==10){  
            r4=random.nextInt(15)+1;  
        }else if(r3==15){  
            r4=random.nextInt(15);  
        }else{  
            r4=random.nextInt(16);  
        }  
        String str_r4=rBase[r4];  
          
        byte[] bytes=new byte[2];  //定义二维数组,用以保存汉字  
        String str_r12=str_r1+str_r2;  
        int tempLow=Integer.parseInt(str_r12,16);   
        bytes[0]=(byte)tempLow;  
          
        String str_r34=str_r3+str_r4;  
        int tempHigh=Integer.parseInt(str_r34,16);  
        bytes[1]=(byte)tempHigh;  
          
        ctmp=new String(bytes);  
        
        return ctmp;  
    }  
分享到:
评论

相关推荐

    SQL_Sever数据库常用语句大全.zip

    SubString中间截取字符串函数 Left左截取字符串函数 stuff指定位置插入字符串、删掉字符串函数 查看数据库信息功能大全 存储过程解析大全 获取月份的月初月末时间 Convert转换数据类型函数(格式化字符串) newid...

    PHP函数库,PHP函数大全,PHP函数实例,PHP函数手册,PHP5函数库实例

    截取字符串中两个特定唯一字符之间的内容 截取指定长度字符串 折线图 按照比例改变图片大小(非生成缩略图) 收藏主页 数据验证类 数组转换成XML格式 日期计算 是否为电子邮件格式 柱形统计图 检查是否为一...

    c# 加密和解密相关代码

    i++) //遍历字符串中的所有字符,只能加密字符串,无法加密汉字 { tem_Character = System.Convert.ToChar(InputText.Substring(i, 1)); //获取字符串中指定的字符 UnicodeChar = (int)tem_Character; //获取当前...

    delphi 开发经验技巧宝典源码

    0177 截取指定位置的字符串 115 0178 清除字符串中指定的字符 115 0179 如何实现文本的加密与解密 116 0180 提取字符串中指定子字符串后的字符串 117 0181 替换指定的字符串 117 0182 在文本中删除指定的...

    delphi 开发经验技巧宝典源码06

    0177 截取指定位置的字符串 115 0178 清除字符串中指定的字符 115 0179 如何实现文本的加密与解密 116 0180 提取字符串中指定子字符串后的字符串 117 0181 替换指定的字符串 117 0182 在文本中删除指定的...

    PHP开发实战1200例源码

    实例112 解决用substr()函数对中文字符串截取时出现乱码的问题 143 实例113 字符串与HTML标记相互转换 144 实例114 运用PHP 5.0新型字符串输出XML数据 145 实例115 判断字符串中是否存在指定子串 146 2.9 正则...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part1

    实例112 解决用substr()函数对中文字符串截取时出现乱码的问题 143 实例113 字符串与HTML标记相互转换 144 实例114 运用PHP 5.0新型字符串输出XML数据 145 实例115 判断字符串中是否存在指定子串 146 2.9 正则表达式...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part2

    实例112 解决用substr()函数对中文字符串截取时出现乱码的问题 143 实例113 字符串与HTML标记相互转换 144 实例114 运用PHP 5.0新型字符串输出XML数据 145 实例115 判断字符串中是否存在指定子串 146 2.9 正则表达式...

    C#编程经验技巧宝典

    72 &lt;br&gt;0102 将字符串首字母转换大写 72 &lt;br&gt;0103 如何进行字节数组和字符串的相互转换 72 &lt;br&gt;0104 如何把一个按空格分割的字符串存储在一个ArrayList数组中 73 &lt;br&gt;4.2 获取字符串信息 73 ...

    JAVA_API1.6文档(中文)

    java.util 包含 collection 框架、遗留的 collection 类、事件模型、日期和时间设施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组)。 java.util.concurrent 在并发编程中很常用的实用工具类...

    Java 1.6 API 中文 New

    java.util 包含 collection 框架、遗留的 collection 类、事件模型、日期和时间设施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组)。 java.util.concurrent 在并发编程中很常用的实用工具类。...

    JavaAPI1.6中文chm文档 part1

    java.util 包含 collection 框架、遗留的 collection 类、事件模型、日期和时间设施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组)。 java.util.concurrent 在并发编程中很常用的实用工具类...

    JavaScript完全自学宝典 源代码

    3.3.html 截取字符串的子串。 3.4.html 用户自定义的实现slice函数功能的函数。 3.5.html 删除数组最后项的方法。 3.6.html 向数组头添加一个项。 3.7.html 多维数组的实现方法。 第4章(\c04...

    JavaAPI中文chm文档 part2

    java.util 包含 collection 框架、遗留的 collection 类、事件模型、日期和时间设施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组)。 java.util.concurrent 在并发编程中很常用的实用工具类...

    grub4dos-V0.4.6a-2017-02-04更新

    --string=[x]=[y]=[color]=["string“] 字符串位置、颜色与内容,可用于标题,说明,帮助等。单位:列,行,24位色彩。 注:如果省略颜色,位于菜单框以上按标题颜色,位于菜单框以下按帮助文本颜色; 字符串头尾...

    java api最新7.0

    java.util 包含 collection 框架、遗留的 collection 类、事件模型、日期和时间设施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组)。 java.util.concurrent 在并发编程中很常用的实用工具类。...

Global site tag (gtag.js) - Google Analytics