300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 输入字符串 计算占据英文长度

输入字符串 计算占据英文长度

时间:2024-01-03 23:54:05

相关推荐

输入字符串 计算占据英文长度

最近遇到一个解析 shell 命令返回的表格形式的返回的需求。

由于返回即有中文也有英文,而且返回的项也可能包含空格,故需要计算每列占据的长度,从而截取解析。

但是中文和英文占据的长度不一致,故用到此方法去做处理。

/*** 输入字符串,计算占据英文长度*/public static int getEnLength(String value) {int valueLength = 0;String chinese = "[\u0391-\uFFE5]";/* 获取字段值的长度,如果含中文字符,则每个中文字符长度为2,否则为1 */for (int i = 0; i < value.length(); i++) {/* 获取一个字符 */String temp = value.substring(i, i + 1);/* 判断是否为中文字符 */if (temp.matches(chinese)) {/* 中文字符长度为2 */valueLength += 2;} else {/* 其他字符长度为1 */valueLength += 1;}}return valueLength;}/*** 输入英文位数 ,计算实际长度** @param index* @param row* @return*/public static Integer getActualLength(Integer index, String row) {if (index == 0 || index == -1) {return index;}String chinese = "[\u0391-\uFFE5]";Integer tempIndex = 0;/* 获取字段值的长度,如果含中文字符,则每个中文字符长度为2,否则为1 */for (int i = 0; i < row.length(); i++) {if (tempIndex.equals(index)) {return i;}String str = String.valueOf(row.charAt(i));/* 判断是否为中文字符 */if (str.matches(chinese)) {/* 中文字符长度为2 */tempIndex += 2;} else {/* 其他字符长度为1 */tempIndex += 1;}}return null;}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。