java格式化字符串,在指定位置插入指定字符串,兼容中英文以及特殊字符,例如:换行,用于解决生成pdf换行问题等问题
来源:互联网 发布:hadoop2.7.3源码下载 编辑:程序博客网 时间:2024/05/17 02:23
原因: 由于html转pdf时,不能自动换行,因此才有下面的代码.
注释:完全模拟html页面的自动换行!
package test;import java.io.UnsupportedEncodingException;/** * 解决pdf换行问题,在指定位置插入指定字符串,兼容中英文以及特殊字符 * * @author xg君 * */public class app { public static void main(String[] args) throws UnsupportedEncodingException { System.out.println(addStr(10, "<br/>", "as阿萨德dsa阿斯蒂芬fladadasdsjf阿斯蒂芬ljdsljkjlfdsklfd啥地方都是skljdsasfasdfads")); } /** * 插入方法 * * @param num * 每隔几个字符插入一个字符串 * @param splitStr * 待指定字符串 * @param str * 原字符串 * @return 插入指定字符串之后的字符串 * @throws UnsupportedEncodingException */ public static String addStr(int num, String splitStr, String str) throws UnsupportedEncodingException { StringBuffer sb = new StringBuffer(); String temp = str; int len = str.length(); while (len > 0) { int idx = getEndIndex(temp, num); sb.append(temp.substring(0, idx + 1)).append(splitStr); temp = temp.substring(idx + 1); len = temp.length(); } return sb.toString(); } /** * 两个数字/英文 * * @param str * 字符串 * @param num * 每隔几个字符插入一个字符串 * @return int 最终索引 * @throws UnsupportedEncodingException */ public static int getEndIndex(String str, double num) throws UnsupportedEncodingException { int idx = 0; double val = 0.00; // 判断是否是英文/中文 for (int i = 0; i < str.length(); i++) { if (String.valueOf(str.charAt(i)).getBytes("UTF-8").length >= 3) { // 中文字符或符号 val += 1.00; } else { // 英文字符或符号 val += 0.50; } if (val >= num) { idx = i; if (val - num == 0.5) { idx = i - 1; } break; } } if (idx == 0) { idx = str.length() - 1; } return idx; }}
效果:
我的另一篇文章的地址:http://www.cnblogs.com/king-xg/p/6370890.html
签名:雪糕君
0 0
- java格式化字符串,在指定位置插入指定字符串,兼容中英文以及特殊字符,例如:换行,用于解决生成pdf换行问题等问题
- C# 在指定字符串中间插入换行符
- div内的中英文字符串换行问题
- 在字符串指定位置插入字符串
- C实例----在字符串指定位置插入字符
- 【Java】在一个字符串指定位置插入字符串
- 字符串指定位置插入
- HTML中英文长字符串自动换行问题,兼容IE Firefox chrome
- js 字符串换行,指定长度,指定符号
- 在指定的位置后插入字符串
- 在HTML中英文换行问题
- 在一个字符串中插入指定字符
- 唯爱小粽子:Java中去除字符串中的空格、回车、换行符、制表符等特殊字符
- 在字符串中输入回车换行或其它特殊字符
- 解决长字符串换行的问题
- 解决长字符串换行的问题
- 指定位置插入新字符串
- 指定位置插入新字符串
- MySQL在数据存储方面的限制
- ES权威指南_04_aggs_08 Approximate Aggs(近似聚合:cardinality and percentiles)
- Java不定参数
- ES权威指南_04_aggs_09 Significant Terms(significant_terms )
- 1.监督学习
- java格式化字符串,在指定位置插入指定字符串,兼容中英文以及特殊字符,例如:换行,用于解决生成pdf换行问题等问题
- ES权威指南_04_aggs_10 Doc Values and Fielddata
- unity 3d sprite2d点击判断
- 数学方面的能力该怎么培养
- fopen()函数
- Quartz的misfire理解
- iOS基础--UITableViewCell的重用机制
- ES权威指南_04_aggs_11 Closing Thoughts
- 50个安卓开发者应该熟悉的Android Studio技巧和资源