`
duan1823a
  • 浏览: 91701 次
  • 性别: 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;  
    }  
分享到:
评论

相关推荐

    PHP截取字符串,生成文章摘要

    在PHP中,截取字符串并生成文章摘要是常见的任务,特别是在构建内容管理系统或者博客平台时。这个过程涉及到字符串处理和文本分析技术。下面我们将详细探讨如何使用PHP来实现这一功能。 首先,PHP提供了多种内置...

    ASP截取固定长度字符串

    因此,在截取字符串时需要注意字符的字节数量,以避免截取到半个汉字。 #### 二、自定义函数StrByteLeft()详解 为了更好地解决中文字符串截取问题,可以自定义一个函数`StrByteLeft()`来实现更精确的截取。 1. **...

    C#字符串截取

    字符串截取作为字符串处理的一个基本功能,其应用场景非常广泛,例如网页标题截取、消息摘要生成等。 ### 方法一:GetFirstString - 多字符支持的字符串截取 此方法用于获取指定长度的字符串,并特别考虑了中文...

    Oracle截取字符串去掉字段末尾指定长度的字符

    在Oracle数据库中,处理字符串是常见的操作之一,特别是在数据清洗、数据分析或报表生成等场景。本文将详细讨论如何使用Oracle的内置函数来截取并处理字符串,特别是如何去掉字段末尾指定长度的字符。 首先,Oracle...

    php简单截取字符串代码示例

    循环结束后,将两个截取的部分合并起来,形成最终的截取字符串,并返回给调用者。 这种方法之所以重要,是因为它处理了中文文本时可能出现的多字节问题,并且避免了因字符编码错误导致的文本显示问题。特别是对于...

    Objective-C中字符串操作总结

    - 在iOS开发中,字符串的比较应考虑本地化和国际化的需求,正确处理Unicode字符集,特别是在比较中文、日文等多字节字符时。 ### 结语 掌握Objective-C中的NSString和NSMutableString类的使用,对于任何iOS开发者...

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

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

    JS版获取字符串真实长度和取固定长度的字符串函数

    同样的,当需要取固定长度的字符串时,如果不对双字节字符进行特殊处理,就可能在截取字符串时导致字符被不完整地截取,特别是当字符串长度不是按照双字节字符整齐划分时。例如,如果需要截取长度为2的字符串,按照...

    PHP中文处理 中文字符串截取(mb_substr)和获取中文字符串字数

    上述代码会截取字符串的前4个字,结果为“软件开发网”。 接下来,我们讨论`mb_strlen()`函数,它是用来计算字符串中字符数量的。对于包含多字节字符的字符串,`mb_strlen()`同样优于传统的`strlen()`函数,因为它...

    设置字符串每行固定长度

    首先,我们可以使用`string.Substring()`方法来截取字符串的一部分,配合`Environment.NewLine`常量来实现换行。如果字符串长度超过固定长度,我们可以在固定长度的位置将其截断,并在后面添加换行符。以下是一个...

    php截取字符

    在给定的PHP代码片段中,我们关注到的是如何使用PHP来截取字符串的一个具体示例,这在处理大量文本数据、生成摘要或限制显示长度时非常有用。下面,我们将深入探讨这一知识点,并结合实际应用进行详细解析。 ### ...

    C#_的字符串处理函数及举例

    - `Substring(int startIndex)` 仅提供一个参数时,截取从指定位置到字符串末尾的子字符串。 - `Replace(oldValue, newValue)` 替换字符串中所有出现的旧值为新值。 - `Trim()` 去除字符串两端的空白字符。 - `...

    C#中英文混合字符串截取函数

    第二个函数是`GetByteString`,它的功能是在截取字符串的同时保证字符串按ASCII编码后的字节长度不超过指定的最大长度,常用于对URL进行编码以避免URL过长。该函数的实现包括以下步骤: 1. 从原字符串中截取到最大...

    PHP HTML代码串 截取实现代码

    使用`mb_strwidth`来确定是否达到截取长度,并使用`mb_strimwidth`来实际截取字符串,后者同样能考虑到中文字符的显示宽度。在截取完成后,还要注意重新拼接生成正确的HTML代码串。 ### 对前端text-overflow属性的...

    PHP 字符串工具类:高效实现常见字符串操作与实用案例分享

    其中包括了字符串去前后左右空白、生成指定规则下的随机字符串、适用于多字节环境如中文的支持截取和测量长度,以及对称加密解密等方法的具体实现实现细节。 适用人群:本内容特别适合作为初级和中级水平的PHP开发者...

    js截取固定长度的中英文字符的简单实例

    2. **截取字符串**:根据计算出的实际长度,当达到指定长度时,函数会截取到当前位置并添加省略号("..."),然后返回截取后的字符串。 3. **处理特殊情况**:如果给定的字符串长度小于指定长度,函数会直接返回...

    文字转成byte[],再转成string加密,再解密转成byte[] C#

    加密后的字节数组通常会以Base64编码的形式在网络上传输,因为Base64编码可以把任意字节数组转化为只包含ASCII字符的字符串。使用`Convert.ToBase64String()`可以实现这一转换: ```csharp string encryptedText ...

    易语言源码易语言字节集操作效率对比源码.rar

    例如,`创建字节集(10)`将创建一个包含10个字节的字节集,而`字节集 := "你好"`则会创建一个字节集并填充字符串的字节。 2. **字节集的赋值与比较**:字节集可以像普通变量一样赋值,也可以进行比较操作。赋值时...

    java面试宝典4

    问题中提到的函数要求在保持完整汉字的基础上,根据字节数截取字符串。Java的`substring()`方法按照字符截取,但汉字占两个字节,因此需要特殊处理。提供的代码中,首先计算出需要截取的段数(`loopCount`),然后...

    php用字库显示随机汉字

    `mb_substr`函数用于处理多字节编码的字符串,确保正确截取汉字。 另外,压缩包中的`在PHP的图形函数中显示汉字.txt`文件可能涉及到如何在使用GD库或其他图形处理函数(如imagestring或imagettftext)时,将生成的...

Global site tag (gtag.js) - Google Analytics