`
sisi1984117
  • 浏览: 156213 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

【转】String自动换行

阅读更多
               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自动换行

    本项目聚焦于“自动换行”这一功能,针对Delphi程序进行了优化,旨在提升用户体验并解决可能出现的乱码问题。 自动换行是文本编辑器或控制台应用程序中的一个常见特性,它允许用户在一行文本达到指定宽度时,自动将...

    POI的EXCEL导出,自动换行

    ### POI的EXCEL导出,自动换行 在日常工作中,经常需要处理大量的数据导入导出任务,尤其是在企业级应用开发中,Excel文件的处理成为了一项必不可少的能力。Apache POI项目提供了一系列用于读写Microsoft Office...

    串口字符输入LCD显示(自动换行)

    本文将深入探讨如何通过串口接收字符,并在LCD显示屏上进行自动换行显示。 首先,我们需要理解串口通信的基础。串口通信,即串行通信,是一种数据传输方式,它将数据一位一位地依次传输。通常,串口通信包括UART...

    Android textView根据长度自动换行-IT计算机-毕业设计.zip

    本项目是一个年前的Android应用源码示例,专为学生毕业设计学习而准备,旨在教授如何让TextView根据文本长度自动换行,以适应不同屏幕尺寸和用户需求。 在Android中,TextView默认情况下会自动换行,当一行文本无法...

    vb.net 图片文字自动换行打印预览

    在VB.NET编程环境中,开发一个应用来实现“图片文字自动换行打印预览”涉及到多个关键知识点。这个功能主要用于在打印文档时,不仅能够处理文本的自动换行以适应页面布局,还能结合图片进行混合排版,并且提供预览...

    ios-TextField自动换行.zip

    然而,有时候我们可能需要`UITextField`能够支持多行文本输入,也就是自动换行,这在处理长文本或者用户需要填写段落信息时非常有用。本文将深入探讨如何实现`UITextField`的自动换行功能,并提供相关的知识点和代码...

    listView实现文字编辑的自动换行

    要实现ListView中的文字编辑自动换行,我们需要结合EditText控件和自定义Adapter来完成这一功能。以下将详细阐述如何实现这一需求。 首先,我们创建一个布局文件,用于定义ListView中每一项的视图。在这个布局中,...

    在 TextBox 中自动换行(2KB)...

    标题“在TextBox中自动换行”所涉及的知识点就是如何让TextBox在文本超出其宽度时自动换行,以便用户可以清晰地查看和编辑文本。 实现TextBox自动换行的方法主要有两种: 1. **属性设置**:在VB中,可以通过设置...

    html转pdf,ITEXT转HTML为PDF解决中文不换行问题

    1、core-renderer.jar该jar包修改过中文不换行问题 public static String getConversionHtmlCode(String linkcss,String htmlCode,String title){ String css = ""; css +="&lt;style&gt;"; css +="table{"; ...

    Android自动换行标签控件

    在Android开发中,创建一个能够自动换行的标签控件是一项常见的需求,它通常用于显示多项分类信息,如新闻类别、商品标签等。本篇将详细介绍如何利用`RelativeLayout`来实现这样一个功能。 首先,我们需要理解`...

    java 写的转pdf代码,支持表格内容的中文换行

    这个“java写的转pdf代码”是专为此目的设计的,它支持中文字符的正确换行以及表格内容的布局,同时允许开发者自定义CSS样式,以满足多样化的格式需求。 首先,我们要理解的是PDF(Portable Document Format)是一...

    继承view 实现文本的自动换行

    "继承View实现文本的自动换行"这个主题,就是关于如何在自定义View中处理文本显示,使其能够根据屏幕宽度智能地进行换行。下面将详细介绍这个知识点。 首先,我们需要创建一个新的View类,让它继承自Android的基础...

    ios-textView自动换行.zip

    当用户输入的文本超出单行显示范围时,`textView` 的自动换行功能就显得尤为重要。本教程将深入探讨如何在iOS应用中实现`textView`的自动换行,并优化输入框适配。 首先,我们要了解`UITextView`的基础属性和方法。...

    精彩编程与编程技巧-在打印字符串时自动换行...

    #### 一、自动换行功能实现 在编程中,自动换行是一项非常实用的功能,尤其是在处理大量文本数据时。本文档介绍了一种在打印字符串时实现自动换行的方法。 ##### 1.1 实现原理 在实现自动换行的过程中,主要涉及到...

    J2ME 游戏 绘制字自动换行

    标题“J2ME 游戏 绘制字自动换行”指出,我们将探讨如何在J2ME游戏环境中实现文本的自动换行功能,这样就不必再依赖数组来手动管理每一行的文字。描述中提到,“手机中的文字进行自动换行,再无需要数组的烦恼”,...

    android在SurfaceView游戏中字体自动换行

    ### Android在SurfaceView游戏中实现字体自动换行的关键技术解析 #### 概述 在Android开发过程中,特别是针对游戏开发中的SurfaceView组件应用时,文本显示的美观与合理性尤为重要。一个常见的需求是根据屏幕的...

    freemarker生成复杂excel,带换行

    本示例重点在于如何通过Freemarker实现Excel单元格内的换行功能。 首先,我们需要理解Freemarker的基本语法。Freemarker模板语言(FTL)使用`&lt;#...&gt;`作为指令标记,`${...}`或`&lt;@...&gt;`作为表达式。在生成Excel时,...

    FlowLayout自动换行

    它按照从左到右、从上到下的顺序来放置组件,当一行填满后会自动换行到下一行。在Java GUI编程中,理解并掌握FlowLayout的自动换行特性对于创建用户界面至关重要。 FlowLayout主要有三个构造函数,每个都允许我们...

    Winform中的ComBox控件实现换行 当文本长度达到最大时实现换行

    在某些设计需求中,我们可能希望当文本过长时,ComBox能自动换行以展示完整内容。本文将详细介绍如何在C# Winform应用中实现这个功能。 首先,我们需要理解ComBox控件的基本属性和方法。`DisplayMember`属性用于...

    效控制C#中label输出文字的长度,自动换行

    特别是当需要根据容器大小动态调整文本显示时,确保文本能够自动换行以适应容器宽度,同时保持良好的视觉效果至关重要。本文将详细介绍如何在C#中有效地控制Label输出的文字长度并实现自动换行功能。 ### 一、理解...

Global site tag (gtag.js) - Google Analytics