public class SubStringTest {
/**
*
* @param src 源字符串
* @param subLength 需要截取的长度
* @return
*/
public static String subString(String src, int subLength) {
if(src == null){
return null;
}
if(subLength == 0){
return "";
}
StringBuffer sb = new StringBuffer();
char[] chars = src.toCharArray();
for (char a : chars) {
if (isContinueAppend(sb, a, subLength)) {
sb.append(a);
}
else{
break;
}
}
return sb.toString();
}
/**
*
* @param sb 已截到的字符串
* @param a 当前要被装进sb的字符
* @param subLength 需要截取的长度
* @return
*/
public static boolean isContinueAppend(StringBuffer sb, char a,
int subLength) {
int currentLength = 0;
for (char temp : sb.toString().toCharArray()) {
currentLength += (temp >> 8 == 0) ? 1 : 2;
}
return (currentLength + (a >> 8 == 0 ? 1 : 2)) <= subLength;
}
public static void main(String[] args) {
System.out.println(subString("我是一a个中国人",7));
}
}
分享到:
相关推荐
自己输入一个字符串,字符串中可以包括字符和汉字,截取指定的字符串
这段C#代码用于按照指定的长度截取字符串,一个中文字符算2个字符,按照这个方法截取的字符串基本可以保持显示长度一致 /// /// 截取文本,区分中英文字符,中文算两个长度,英文算一个长度 /// /// 待截取的字符...
js截取字符串 substr() 方法能够根据指定长度来截取子字符串。它包含两个参数,第一个参数 表示准备截取的子字符串起始下标,第二个参数表示截取的长度。 示例 1 在下面示例中使用 lastIndexOf() 获取字符串的最后一...
2)字符串长度:length 3)字符串截取:substring('fsfd' from 2 for 3)、substr('fsfd',2,3) 4)字符串两头去字符:trim(' fsf')、trim(both 'x' from 'xfdsx') 5)大小写转换:upper()、lower() 6)替换字符...
主要介绍了Oracle截取字符串去掉字段末尾指定长度的字符 的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
根据显示长度截取字符串,之前php用的utf8编码,10个英文和10个汉字的显示长度差距太大,按字节截取的话又会出错出现截取半个汉字的情况,所以写了这两个函数. 这两天在折腾golang,所以就用golang重写了着连个函数.代码...
c#截取指定长度 中英文混合字符串 一个中文为两个字符计算,英文一个字符。
字符串截取函数,只限单字节字符使用(对于中文的截取时遇上奇数长度是会出现乱码,需另行处理),本函数可截取字符串指定范围内的字符。
但字符串只要出现中文字符,就有可能导致PHP substr中文乱码,因为中文UTF-8编码,每个汉字占3字节,而GB2312占2字节,英文占1字节,截取位数不准确,substr()硬生生地将一个中文字符“锯”成两半,造成断开的字符会...
Labview编写的代码, 搜索拆分字符串
定义:接受一个或者两个参数,第一个参数指定子字符串的开始位置。第二个参数表示子字符串的结束位置(不包括结束位置的那个字符),如果没有传递第二个参数,则将字符串的长度作为结束位置。 1、传递参数为正值情况...
4. 字符串长度和截取:包含了获取字符串长度的函数,以及截取字符串的子串的函数。通过使用字符串模块,Fortran 程序员可以更加方便地处理字符串操作,从而提高代码的可读性和可维护性。在编写需要大量字符串处理的...
一直不知道js可以截取中文字符,呵呵,原理用正则表达式,匹配中文的长度,中文算两个,因为算一个,是个好东西,推荐大家收藏
如 现有字符串 “[]aseabcd[12345]ddxabcdsx[]”,要截取”abcd[” 和 “abcd[“之后的第一个 “]” 之间的内容 “12345”,当然当中的内容长度不是固定的,可以是”123456″ 或者其他字符串。 他问我的时候,我第一...
代码如下:两个截取字符串的实用方法(超过一定长度自动换行)/// /// 截取字符串,不限制字符串长度 /// /// 待截取的字符串 /// 每行的长度,多于这个长度自动换行 /// public string CutStr(string str,int ...
例如要截取字符串"我是1个中国人",取3位长度,那得到的结果是"我",如果取6位长度,得到的结果是"我是1",因为汉字是两个字节。 当时的思路主要是考虑最后一位是单字节还是双字节,不过最终得出了比较不错的方法
length ) expression:字符串、二进制字符串、text、image、列或包含列的表达式start:整数,指定子串的开始位置 注:SQL中”1″表示字符串中的第一个字符,而.NET中”0″表示第一个字符length:整数,指定子串的长度...
1. 连接字符串(Concatenation):将两个或多个字符串连接在一起,形成一个新的字符串。在大多数编程语言中,可以使用加号 "+" 或特定的字符串连接函数来实现。 2. 截取子字符串(Substring):从一个较长的字符串...
今天一个小弟问我的问题,在文本框中输入字符,如果超出指定长度,就把它截取,要求中文等于两个字符的长度,我找一下资料,把这个功能实现了, 下面是JS代码: <html> [removed][removed] <body> <...
在给大家讲述这个问题之前,先给大家看一段nginx配置....但如果我们要截取某几位字符怎么办呢? 首先大家想到的肯定是使用模块来实现, 但只能这样吗? 有没有更方便的方式呢? 有的. 我们可以巧妙地使用if