/**
* 按字节截取字符串,不取不完整的字符(从一开始 )
* @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提供了多种内置...
因此,在截取字符串时需要注意字符的字节数量,以避免截取到半个汉字。 #### 二、自定义函数StrByteLeft()详解 为了更好地解决中文字符串截取问题,可以自定义一个函数`StrByteLeft()`来实现更精确的截取。 1. **...
字符串截取作为字符串处理的一个基本功能,其应用场景非常广泛,例如网页标题截取、消息摘要生成等。 ### 方法一:GetFirstString - 多字符支持的字符串截取 此方法用于获取指定长度的字符串,并特别考虑了中文...
在Oracle数据库中,处理字符串是常见的操作之一,特别是在数据清洗、数据分析或报表生成等场景。本文将详细讨论如何使用Oracle的内置函数来截取并处理字符串,特别是如何去掉字段末尾指定长度的字符。 首先,Oracle...
循环结束后,将两个截取的部分合并起来,形成最终的截取字符串,并返回给调用者。 这种方法之所以重要,是因为它处理了中文文本时可能出现的多字节问题,并且避免了因字符编码错误导致的文本显示问题。特别是对于...
- 在iOS开发中,字符串的比较应考虑本地化和国际化的需求,正确处理Unicode字符集,特别是在比较中文、日文等多字节字符时。 ### 结语 掌握Objective-C中的NSString和NSMutableString类的使用,对于任何iOS开发者...
SubString中间截取字符串函数 Left左截取字符串函数 stuff指定位置插入字符串、删掉字符串函数 查看数据库信息功能大全 存储过程解析大全 获取月份的月初月末时间 Convert转换数据类型函数(格式化字符串) newid...
同样的,当需要取固定长度的字符串时,如果不对双字节字符进行特殊处理,就可能在截取字符串时导致字符被不完整地截取,特别是当字符串长度不是按照双字节字符整齐划分时。例如,如果需要截取长度为2的字符串,按照...
上述代码会截取字符串的前4个字,结果为“软件开发网”。 接下来,我们讨论`mb_strlen()`函数,它是用来计算字符串中字符数量的。对于包含多字节字符的字符串,`mb_strlen()`同样优于传统的`strlen()`函数,因为它...
首先,我们可以使用`string.Substring()`方法来截取字符串的一部分,配合`Environment.NewLine`常量来实现换行。如果字符串长度超过固定长度,我们可以在固定长度的位置将其截断,并在后面添加换行符。以下是一个...
在给定的PHP代码片段中,我们关注到的是如何使用PHP来截取字符串的一个具体示例,这在处理大量文本数据、生成摘要或限制显示长度时非常有用。下面,我们将深入探讨这一知识点,并结合实际应用进行详细解析。 ### ...
- `Substring(int startIndex)` 仅提供一个参数时,截取从指定位置到字符串末尾的子字符串。 - `Replace(oldValue, newValue)` 替换字符串中所有出现的旧值为新值。 - `Trim()` 去除字符串两端的空白字符。 - `...
第二个函数是`GetByteString`,它的功能是在截取字符串的同时保证字符串按ASCII编码后的字节长度不超过指定的最大长度,常用于对URL进行编码以避免URL过长。该函数的实现包括以下步骤: 1. 从原字符串中截取到最大...
使用`mb_strwidth`来确定是否达到截取长度,并使用`mb_strimwidth`来实际截取字符串,后者同样能考虑到中文字符的显示宽度。在截取完成后,还要注意重新拼接生成正确的HTML代码串。 ### 对前端text-overflow属性的...
其中包括了字符串去前后左右空白、生成指定规则下的随机字符串、适用于多字节环境如中文的支持截取和测量长度,以及对称加密解密等方法的具体实现实现细节。 适用人群:本内容特别适合作为初级和中级水平的PHP开发者...
2. **截取字符串**:根据计算出的实际长度,当达到指定长度时,函数会截取到当前位置并添加省略号("..."),然后返回截取后的字符串。 3. **处理特殊情况**:如果给定的字符串长度小于指定长度,函数会直接返回...
加密后的字节数组通常会以Base64编码的形式在网络上传输,因为Base64编码可以把任意字节数组转化为只包含ASCII字符的字符串。使用`Convert.ToBase64String()`可以实现这一转换: ```csharp string encryptedText ...
例如,`创建字节集(10)`将创建一个包含10个字节的字节集,而`字节集 := "你好"`则会创建一个字节集并填充字符串的字节。 2. **字节集的赋值与比较**:字节集可以像普通变量一样赋值,也可以进行比较操作。赋值时...
问题中提到的函数要求在保持完整汉字的基础上,根据字节数截取字符串。Java的`substring()`方法按照字符截取,但汉字占两个字节,因此需要特殊处理。提供的代码中,首先计算出需要截取的段数(`loopCount`),然后...
`mb_substr`函数用于处理多字节编码的字符串,确保正确截取汉字。 另外,压缩包中的`在PHP的图形函数中显示汉字.txt`文件可能涉及到如何在使用GD库或其他图形处理函数(如imagestring或imagettftext)时,将生成的...