String messageTextC = autoCut(messageTextC,50);
///////////////////////////////////////////////
String newString = "";
char[] arr = str.toCharArray();
int txtLen = 0;// 文本长度
int charCount = 0;// 字符计数器
int startIndex = 0;// 开始索引
int endIndex = 0;// 结束索引
ArrayList result = new ArrayList();// 字符串数组
int j = 0;
for (int i = 0; i < arr.length; i++) {
if (isChinese(arr[i])) {
txtLen += 2;
charCount++;
} else {
txtLen++;
charCount++;
}
if (txtLen == charLen) {
startIndex = endIndex;
endIndex = startIndex + charCount;
charCount = 0;
txtLen = 0;
result.add(j++, str.substring(startIndex, endIndex));
} else if (txtLen == charLen + 1) {
startIndex = endIndex;
endIndex = startIndex + charCount - 1;
charCount = 0;
txtLen = 0;
result.add(j++, str.substring(startIndex, endIndex));
}
}
if (endIndex < str.length()) {
startIndex = endIndex;
result.add(j, str.substring(startIndex, str.length()));
}
result.trimToSize();
Iterator itr = result.iterator();
while (itr.hasNext()) {
newString = newString + itr.next() + "\n";
}
return newString;
private boolean isChinese(char c) {
Character.UnicodeBlock ub = Character.UnicodeBlock.of(c);
if (ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS
|| ub == Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS
|| ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A
|| ub == Character.UnicodeBlock.GENERAL_PUNCTUATION
|| ub == Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION
|| ub == Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS)
return true;
return false;
} }
分享到:
相关推荐
本项目聚焦于“自动换行”这一功能,针对Delphi程序进行了优化,旨在提升用户体验并解决可能出现的乱码问题。 自动换行是文本编辑器或控制台应用程序中的一个常见特性,它允许用户在一行文本达到指定宽度时,自动将...
### POI的EXCEL导出,自动换行 在日常工作中,经常需要处理大量的数据导入导出任务,尤其是在企业级应用开发中,Excel文件的处理成为了一项必不可少的能力。Apache POI项目提供了一系列用于读写Microsoft Office...
本文将深入探讨如何通过串口接收字符,并在LCD显示屏上进行自动换行显示。 首先,我们需要理解串口通信的基础。串口通信,即串行通信,是一种数据传输方式,它将数据一位一位地依次传输。通常,串口通信包括UART...
本项目是一个年前的Android应用源码示例,专为学生毕业设计学习而准备,旨在教授如何让TextView根据文本长度自动换行,以适应不同屏幕尺寸和用户需求。 在Android中,TextView默认情况下会自动换行,当一行文本无法...
在VB.NET编程环境中,开发一个应用来实现“图片文字自动换行打印预览”涉及到多个关键知识点。这个功能主要用于在打印文档时,不仅能够处理文本的自动换行以适应页面布局,还能结合图片进行混合排版,并且提供预览...
然而,有时候我们可能需要`UITextField`能够支持多行文本输入,也就是自动换行,这在处理长文本或者用户需要填写段落信息时非常有用。本文将深入探讨如何实现`UITextField`的自动换行功能,并提供相关的知识点和代码...
要实现ListView中的文字编辑自动换行,我们需要结合EditText控件和自定义Adapter来完成这一功能。以下将详细阐述如何实现这一需求。 首先,我们创建一个布局文件,用于定义ListView中每一项的视图。在这个布局中,...
标题“在TextBox中自动换行”所涉及的知识点就是如何让TextBox在文本超出其宽度时自动换行,以便用户可以清晰地查看和编辑文本。 实现TextBox自动换行的方法主要有两种: 1. **属性设置**:在VB中,可以通过设置...
1、core-renderer.jar该jar包修改过中文不换行问题 public static String getConversionHtmlCode(String linkcss,String htmlCode,String title){ String css = ""; css +="<style>"; css +="table{"; ...
在Android开发中,创建一个能够自动换行的标签控件是一项常见的需求,它通常用于显示多项分类信息,如新闻类别、商品标签等。本篇将详细介绍如何利用`RelativeLayout`来实现这样一个功能。 首先,我们需要理解`...
这个“java写的转pdf代码”是专为此目的设计的,它支持中文字符的正确换行以及表格内容的布局,同时允许开发者自定义CSS样式,以满足多样化的格式需求。 首先,我们要理解的是PDF(Portable Document Format)是一...
"继承View实现文本的自动换行"这个主题,就是关于如何在自定义View中处理文本显示,使其能够根据屏幕宽度智能地进行换行。下面将详细介绍这个知识点。 首先,我们需要创建一个新的View类,让它继承自Android的基础...
当用户输入的文本超出单行显示范围时,`textView` 的自动换行功能就显得尤为重要。本教程将深入探讨如何在iOS应用中实现`textView`的自动换行,并优化输入框适配。 首先,我们要了解`UITextView`的基础属性和方法。...
#### 一、自动换行功能实现 在编程中,自动换行是一项非常实用的功能,尤其是在处理大量文本数据时。本文档介绍了一种在打印字符串时实现自动换行的方法。 ##### 1.1 实现原理 在实现自动换行的过程中,主要涉及到...
标题“J2ME 游戏 绘制字自动换行”指出,我们将探讨如何在J2ME游戏环境中实现文本的自动换行功能,这样就不必再依赖数组来手动管理每一行的文字。描述中提到,“手机中的文字进行自动换行,再无需要数组的烦恼”,...
### Android在SurfaceView游戏中实现字体自动换行的关键技术解析 #### 概述 在Android开发过程中,特别是针对游戏开发中的SurfaceView组件应用时,文本显示的美观与合理性尤为重要。一个常见的需求是根据屏幕的...
本示例重点在于如何通过Freemarker实现Excel单元格内的换行功能。 首先,我们需要理解Freemarker的基本语法。Freemarker模板语言(FTL)使用`<#...>`作为指令标记,`${...}`或`<@...>`作为表达式。在生成Excel时,...
它按照从左到右、从上到下的顺序来放置组件,当一行填满后会自动换行到下一行。在Java GUI编程中,理解并掌握FlowLayout的自动换行特性对于创建用户界面至关重要。 FlowLayout主要有三个构造函数,每个都允许我们...
在某些设计需求中,我们可能希望当文本过长时,ComBox能自动换行以展示完整内容。本文将详细介绍如何在C# Winform应用中实现这个功能。 首先,我们需要理解ComBox控件的基本属性和方法。`DisplayMember`属性用于...
特别是当需要根据容器大小动态调整文本显示时,确保文本能够自动换行以适应容器宽度,同时保持良好的视觉效果至关重要。本文将详细介绍如何在C#中有效地控制Label输出的文字长度并实现自动换行功能。 ### 一、理解...