Java在字符串,每隔指定的字符数插入指定的符号
2016-09-12 14:57
357 查看
获取一段字符串,是中英文数字混合的,在页面上想要达到一定长度就换行,然而中文和英文和数字的长度不一致,不能单一的用length来判断,现在博主写了如下代码供参考:
现实现的效果是数字和英文算长度1,汉字算2,达到8位就加<br/>去换行
public void testInsert()
{
String originStr = "12今天3真a是4B个好Cd日子";
List<Integer> indexs = new ArrayList<>();
int len = 0;
for (int i = 0; i < originStr.length(); i++)
{
String regContent = originStr.substring(i, i+1);
boolean isChina = regContent.matches("[\u4E00-\u9FA5]");
boolean isEnglish = regContent.matches("[A-Za-z]");
boolean isNum = regContent.matches("[0-9]");
if (isChina)
{
// printToConsole(regContent + " is China!");
len += 2;
}
else if (isEnglish)
{
// printToConsole(regContent + " is English!");
len += 1;
}
else if (isNum)
{
// printToConsole(regContent + " is Num!");
len += 1;
}
else
{
// printToConsole(regContent+"---未知");
}
if (len>=8)
{
indexs.add(i);
len = 0;
}
}
String lastStr = "";
if (indexs.size() > 0)
{
for (int i = 0; i < (indexs.size()+1); i++)
{
if (i == 0)
{
lastStr += originStr.substring(0, indexs.get(i)+1);
lastStr += "<br />";
}
else if (i*8 < originStr.length())
{
lastStr += originStr.substring(indexs.get(i-1)+1, indexs.get(i)+1);
lastStr += "<br />";
}
else
{
lastStr += originStr.substring(indexs.get(i-1)+1, originStr.length());
}
}
}
printToConsole(indexs);
printToConsole(originStr);
printToConsole(lastStr);
}
其中printToConsole方法是自己封装的打印到控制台的方法,代码如下
protected void printToConsole(Object obj)
{
System.err.println(JSONObject.toJSONString(obj));
}
最后的打印结果如下:
[5,11]
"12今天3真a是4B个好Cd日子"
"12今天3真<br />a是4B个好<br />Cd日子"
现实现的效果是数字和英文算长度1,汉字算2,达到8位就加<br/>去换行
public void testInsert()
{
String originStr = "12今天3真a是4B个好Cd日子";
List<Integer> indexs = new ArrayList<>();
int len = 0;
for (int i = 0; i < originStr.length(); i++)
{
String regContent = originStr.substring(i, i+1);
boolean isChina = regContent.matches("[\u4E00-\u9FA5]");
boolean isEnglish = regContent.matches("[A-Za-z]");
boolean isNum = regContent.matches("[0-9]");
if (isChina)
{
// printToConsole(regContent + " is China!");
len += 2;
}
else if (isEnglish)
{
// printToConsole(regContent + " is English!");
len += 1;
}
else if (isNum)
{
// printToConsole(regContent + " is Num!");
len += 1;
}
else
{
// printToConsole(regContent+"---未知");
}
if (len>=8)
{
indexs.add(i);
len = 0;
}
}
String lastStr = "";
if (indexs.size() > 0)
{
for (int i = 0; i < (indexs.size()+1); i++)
{
if (i == 0)
{
lastStr += originStr.substring(0, indexs.get(i)+1);
lastStr += "<br />";
}
else if (i*8 < originStr.length())
{
lastStr += originStr.substring(indexs.get(i-1)+1, indexs.get(i)+1);
lastStr += "<br />";
}
else
{
lastStr += originStr.substring(indexs.get(i-1)+1, originStr.length());
}
}
}
printToConsole(indexs);
printToConsole(originStr);
printToConsole(lastStr);
}
其中printToConsole方法是自己封装的打印到控制台的方法,代码如下
protected void printToConsole(Object obj)
{
System.err.println(JSONObject.toJSONString(obj));
}
最后的打印结果如下:
[5,11]
"12今天3真a是4B个好Cd日子"
"12今天3真<br />a是4B个好<br />Cd日子"
相关文章推荐
- java格式化字符串,在指定位置插入指定字符串,兼容中英文以及特殊字符,例如:换行,用于解决生成pdf换行问题等问题
- java格式化字符串,在指定位置插入指定字符串,兼容中英文以及特殊字符,例如:换行,用于解决生成pdf换行问题等问题
- PHP 将字符串按指定长度插入分隔字符
- Java生成固定长度的字符串,长度不足自动填充指定字符
- 计算给定字符串中每个字符出现的次数,并以指定格式输出,例如aabbbc输出a2b3c1(java语言)
- Java中如何从一个字符串中删除指定字符
- Split 获取字符串中指定符号分割的字符内容
- JS 字符串操作函数 往指定位置插入字符 删除指定位置字符 替换指定位置字符
- php 在字符串指定位置插入新字符
- java截取指定字符串中的某段字符如何实现?
- Java随机生成长度不少于6的指定长度的密码,且这个字符串必须包含大小写字母、数字和特殊字符,四种的任意三种
- 每隔指定字符长度分割字符串//银行卡号格式化
- php 在字符串指定位置插入新字符的简单实现
- java删除字符串中的指定字符 .
- JAVA insert() 插入字符串 reverse() 颠倒 delete()和deleteCharAt() 删除字符 replace() 替换 substring() 截取子串
- Java 截取指定字符串中的某段字符的实现形式
- python3.4学习笔记(二十二) python 在字符串里面插入指定分割符,将list中的字符转为数字
- 在一个字符串中插入指定字符
- php 在字符串指定位置插入新字符的简单实现
- PHP:将一个字符创插入到另一个字符串的指定位置