项目中要输出满多少字要换行,由于中文和英文占的位数不同,并且有的后面添加\n,有的是</br>,所以就自己写了一下工具类,保证输出的每行宽度相同。英文字符和符号占一位,中文和全角标点占2位
import java.io.UnsupportedEncodingException;
import java.util.HashMap;
import java.util.Map;
/**
*
* desc: string格式化输出换行工具
*
* @author <a href="mailto:yourmail">Hegege</a>
* @version CVS $Revision: 1.1 $ $Date: 2005/12/05 08:42:21 $
*/
public class StringFormatPrintUtil {
public static final String FSLP_RS_STRING = "string";
public static final String FSLP_RS_TEXT = "text";
public static String subString(String text, int length, String endWith) {
int textLength = text.length();
int byteLength = 0;
StringBuffer returnStr = new StringBuffer();
for (int i = 0; i < textLength && byteLength < length * 2; i++) {
String str_i = text.substring(i, i + 1);
if (str_i.getBytes().length == 1) {// 英文
byteLength++;
} else {// 中文
byteLength += 2;
}
returnStr.append(str_i);
}
try {
if (byteLength < text.getBytes("GBK").length) {// getBytes("GBK")每个汉字长2,getBytes("UTF-8")每个汉字长度为3
returnStr.append(endWith);
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return returnStr.toString();
}
public static Map formatStringLnPlus(String text,int length,String endWith){
Map rs = new HashMap();
StringBuffer ss = new StringBuffer();
//输入的文本长度
int textLength = text.length();
//总字节长度
int byteLength = 0;
//定位指针
int p = -1;
//是否差半位
boolean k = false;
for(int i=0;i<textLength;i++){
String str_i = text.substring(i, i + 1);
if (str_i.getBytes().length == 1) {// 英文
byteLength++;
if(byteLength>length&&p<0){
p = i-1;
k=false;
}else if(byteLength==textLength&&p<0){
p = i;
k=false;
}
} else {// 中文
byteLength += 2;
if(byteLength>length&&p<0){
p = i-1;
k=true;
}else if(byteLength==textLength&&p<0){
p = i;
k=true;
}
}
}
if(byteLength<length){
//小于,要补全
ss.append(text);
for(int i = byteLength;i<length;i++){
ss.append(endWith);
}
text = "";
}else if(byteLength==length){
//等于,完整输出
ss.append(text);
text = "";
}else{
//超出,要截取
for(int i=0;i<p;i++){
String str_i = text.substring(i, i + 1);
ss.append(str_i);
}
text = text.substring(ss.toString().length());
if(k){
ss.append(endWith);
}
}
rs.put(FSLP_RS_STRING, ss.toString());
rs.put(FSLP_RS_TEXT, text);
return rs;
}
}
分享到:
相关推荐
"时间格式化工具类"通常是指自定义的类,用于封装Java标准库中的`java.time`或`java.text.SimpleDateFormat`等类的功能,以提供更方便、更灵活的时间处理方法。下面我们将深入探讨这个主题。 首先,`java.time`包是...
而`format`函数通常指的是用于格式化输出的工具,类似于C语言中的`printf`或C++的`std::stringstream`。本项目提供的`std::string format`函数是作者自定义的一个实现,它提供了一种方便的方式来格式化`std::string`...
标题中的“一个简单的时间格式化工具类”指的是一个Java编程中的实用工具类,它主要用于处理日期和时间的格式化工作。在Java开发中,日期和时间的格式化是常见的需求,例如将日期从一种格式转换为另一种格式,或者将...
本篇文章将深入探讨Java中的日期格式化工具类及其使用方法,主要围绕提供的`DateUtil`工具类展开。 首先,`java.util.Date`是Java早期用于表示日期和时间的基础类,但它并不提供直接的格式化功能。为了将`Date`对象...
在PHP编程中,格式化输出函数是开发者进行调试、数据展示以及信息处理的重要工具。本文将详细解析一个典型的PHP格式化输出函数,探讨其工作原理、参数配置及其应用场景,帮助读者更深入地理解和掌握这一核心功能。 ...
这个工具类通常包含了对字符串的各种操作,如拼接、格式化、查找、替换、分割、去空格、大小写转换等。在Java中,Apache Commons Lang是一个常用的库,其中的StringUtils类就是这样一个强大的String工具类。它包含在...
"格式化时间工具类"通常是指一个自定义的类,它封装了Java的日期时间处理方法,以便更方便地进行日期格式化、解析和比较。在这个场景下,`TimeFormatUtil.java`文件很可能就是这样一个工具类。 Java标准库中提供了`...
Date和String的相互转换 得到指定日期所在周的星期几的日期 获取指定年的第几周的最后一天日期 获取指定年的第几周的第一天日期 获取指定日期为当前年的第几周 获取指定日期中的月份 获得当前月的第一天 获得当前月...
总结来说,"iOS日期格式化工具类"是iOS开发中的一个实用组件,它利用`NSDateFormatter`进行日期的格式化输出,并能生成独特的日期字符串以满足文件命名的需求。通过封装这些常见操作,这个工具类可以提高代码的...
标题中的“数字格式化工具类”指的是在编程中用于处理数字字符串的一种实用程序类,它通常包含各种方法,用于将数字转换成特定格式,如货币、百分比、科学记数法等。这样的工具类可以极大地简化开发过程,提高代码...
本篇文章将详细讲解`String`和`Date`工具类中涉及的知识点,以及如何在实际开发中有效地运用它们。 首先,我们来看`String`工具类。在Java中,`String`对象是不可变的,这意味着一旦创建,就不能改变其内容。因此,...
4. **格式化输出**:更高级的格式化操作可能涉及`Format`函数,它可以按照指定的格式模板生成字符串,如日期、数字的格式化。例如,`Format("%0.2f", value)`将把`value`转换为保留两位小数的字符串。 5. **自定义...
**Fastjson JSON格式化工具封装详解** Fastjson是阿里巴巴开源的一款高效、强大的Java语言实现的JSON库。它具有性能优异、使用简单等优点,广泛应用于Java Web开发中,特别是对于数据的序列化与反序列化操作。在...
总结一下,`String.Format`和`ToString()`是C#中进行字符串格式化输出的重要工具。`ToString()`主要用于单一对象的格式化,而`String.Format`则可以处理复杂的格式化需求,包括多参数的合并和格式控制。熟练掌握这两...
本篇将围绕Java中的日期工具类和时间工具类展开讨论,同时会涉及到日期时间的格式化。 首先,Java 8之前,我们主要依赖`java.util.Date`和`java.text.SimpleDateFormat`这两个类来处理日期和时间。`Date`类用于表示...
这个压缩包“安卓textView相关-Android一些数字文字相关的格式化工具类.rar”可能包含了一些辅助开发者处理数字和文字格式化的自定义工具类。虽然没有具体的代码示例,但我们可以基于常见的需求来探讨`TextView`中与...
在提供的"Log打印输出json格式数据"文件中,很可能是包含了示例代码或者日志记录,用于展示如何使用这个工具类进行数据解析,并且将解析结果以Log的形式输出,这对于调试和理解工具类的使用非常有帮助。在实际使用时...
本地XML格式化工具是开发者处理XML文档时不可或缺的助手,它可以帮助我们将杂乱无章的XML源码整理成清晰易读的格式。在Java编程环境下,XML的格式化通常涉及到DOM(Document Object Model)、SAX(Simple API for ...
2. **DecimalFormat 类**:更高级的数字格式化工具,可以自定义各种格式模式。 - **示例代码**: ```java DecimalFormat df = new DecimalFormat("#,###.##"); System.out.println(df.format(1234567.890123)); ...