`

剪切文本。如果进行了剪切,则在文本后加上"..."

阅读更多
/**
	 * 剪切文本。如果进行了剪切,则在文本后加上"..."
	 * 
	 * @param s
	 *            剪切对象。
	 * @param len
	 *            编码小于256的作为一个字符,大于256的作为两个字符。
	 * @return
	 */
	public static String textCut(String s, int len, String append) {
		if (s == null) {
			return null;
		}
		int slen = s.length();
		if (slen <= len) {
			return s;
		}
		// 最大计数(如果全是英文)
		int maxCount = len * 2;
		int count = 0;
		int i = 0;
		for (; count < maxCount && i < slen; i++) {
			if (s.codePointAt(i) < 256) {
				count++;
			} else {
				count += 2;
			}
		}
		if (i < slen) {
			if (count > maxCount) {
				i--;
			}
			if (!StringUtils.isBlank(append)) {
				if (s.codePointAt(i - 1) < 256) {
					i -= 2;
				} else {
					i--;
				}
				return s.substring(0, i) + append;
			} else {
				return s.substring(0, i);
			}
		} else {
			return s;
		}
	}

	public static String htmlCut(String s, int len, String append) {
		String text = html2Text(s, len * 2);
		return textCut(text, len, append);
	}

	public static String html2Text(String html, int len) {
		try {
			Lexer lexer = new Lexer(html);
			Node node;
			StringBuilder sb = new StringBuilder(html.length());
			while ((node = lexer.nextNode()) != null) {
				if (node instanceof TextNode) {
					sb.append(node.toHtml());
				}
				if (sb.length() > len) {
					break;
				}
			}
			return sb.toString();
		} catch (ParserException e) {
			throw new RuntimeException(e);
		}
	}

 

分享到:
评论

相关推荐

    JS文本框文本复制剪切代码.zip

    这个"JS文本框文本复制剪切代码"示例很可能提供了上述方法的实现,帮助开发者创建具有良好用户体验的网页,使用户能轻松地复制和剪切文本框内的内容。通过学习和理解这些代码,你可以更好地掌握JS在处理文本操作方面...

    js文本复制与剪切.rar_js文本复制与剪切

    2. **剪切文本**: JavaScript原生API不直接提供剪切功能,但可以通过先复制文本,然后清空选区来模拟剪切。以下是一个例子: ```javascript function cutText(text) { copyText(text); // 如果有选区,清空...

    JS剪切板文本复制粘贴代码.zip

    在用户触发复制操作后,clipboard.js会选择并复制指定的文本到剪切板。 4. **跨浏览器兼容性**:考虑到不同浏览器对于剪切板操作的支持程度不同,clipboard.js使用了Flash和HTML5的`execCommand()`方法,确保在各种...

    java 文本文件 支持新建,打开,复制,剪切...

    这个程序显然实现了一些基本的文件操作,如新建、打开、复制和剪切文本文件。以下是对这些功能的详细解释: 1. **新建文本文件**: 使用`java.io.File`类可以创建新的文本文件。`File`对象表示一个文件或目录路径...

    复制文本到系统剪切板

    本程序为方便将文本复制到系统剪切板, 以便省去ctrl+c或者右键→复制的步骤 节省时间 联系作者:shaojimei@qq.com 将要复制的文本填入文本框,点击复制 按钮即可

    HTML5 SVG剪切文本动画特效.zip

    这个“HTML5 SVG剪切文本动画特效”是一个示例项目,展示了如何利用SVG和JavaScript来实现动态的文本切割效果,为网页添加视觉吸引力。 SVG的优点在于,无论放大多少倍,图像质量都不会降低,这使得它在响应式设计...

    js文本复制与剪切插件clipboard.zip

    在前端开发中,文本复制与剪切功能是一个常见的需求,比如在用户界面中方便地复制代码、链接等信息。Clipboard API是HTML5引入的一个强大工具,使得JavaScript可以直接操作用户的剪贴板,而无需依赖浏览器的特定实现...

    复制div文本到剪切板.zip

    在IT领域,尤其是在Web开发中,"复制div文本到剪切板"是一个常见的需求,它涉及到用户交互和浏览器API的使用。这个主题的核心是利用JavaScript(JS)来实现这一功能,因为JavaScript通常用于处理浏览器端的动态交互...

    易语言源码剪切板操作.rar

    若要设置剪切板文本,则使用“系统.剪贴板.设文本”函数。对于其他类型的数据,如图片、文件等,也有相应的接口可供使用。 2. **剪切板操作的实现** “剪切板操作.e”文件很可能是易语言编写的源代码示例,其中...

    C#经典文本读写例子,带右键菜单可剪切复制粘贴

    剪切和粘贴的操作类似,剪切会先执行复制然后清除选中文本,粘贴则从剪贴板获取文本并插入到当前位置: ```csharp private void cutToolStripMenuItem_Click(object sender, EventArgs e) { copyToolStripMenuItem...

    C#获取剪切板内容

    这个方法会返回当前剪切板中存放的文本,如果剪切板中没有文本,则返回空字符串。示例代码如下: ```csharp using System.Windows.Forms; string clipboardText = Clipboard.GetText(); Console.WriteLine("剪切板...

    js手机端复制文本到剪切板代码.zip

    在JavaScript的世界里,实现手机端复制文本到剪切板的功能是一项常见的需求,特别是在移动应用或者网页交互中。这个"js手机端复制文本到剪切板代码.zip"文件提供了一个解决方案,帮助开发者实现在手机上复制文本到...

    PastePicture.dll WinForm 复制.剪切.粘贴.拖拽

    - 完整实例可能包含如何加载这个DLL,以及如何调用其中的方法进行复制、剪切、粘贴和拖拽的示例代码。 5. **代码实现**: - 要实现这些功能,开发者需要在WinForm控件上添加事件监听器,如Button的Click事件用于...

    Ditto.rar剪切板记录工具

    在日常的电脑使用中,剪切板功能是不可或缺的一部分,它帮助我们快速复制和粘贴文本、图片等信息。然而,Windows系统自带的剪切板只能存储一项内容,无法保存历史记录,这在处理大量信息时显得捉襟见肘。为了解决这...

    剪切板 网页操作

    下面我们将深入探讨剪切板在网页操作中的应用以及如何在C++和VC环境中进行剪切板操作。 首先,让我们理解剪切板的基本概念。剪切板是操作系统中的一个临时存储区域,用于存储用户复制或剪切的数据,例如文本、图像...

    剪切板使用_C#_剪切板_

    在编程领域,尤其是在使用C#语言进行开发时,剪切板功能是一个常用且重要的工具,它允许程序与操作系统之间交换数据,比如复制、剪切和粘贴文本、图像等内容。本教程将深入探讨C#中如何操作剪切板,帮助初学者理解并...

    简易文本编辑器........

    这些特性使得简易文本编辑器成为在低配置计算机上进行文本操作的理想选择。 简易文本编辑器的工作原理主要是读取、修改和保存文件中的文本数据。当用户打开一个文件时,编辑器读取文件内容并显示在屏幕上。用户对...

Global site tag (gtag.js) - Google Analytics