`
daisy8564
  • 浏览: 76737 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

简单分词算法(二分法,java实现)

    博客分类:
  • JAVA
阅读更多
package com.searchkiller;

public class BinarySplit {

	/**
	 * 分词算法,比如给一个字符串(只包括中文和英文字母):
	 * "中华人ABC民共DE和国"
	 * 要切分为"中华","华人","ABC","民共","DE", "和国"
	 * 
	 */
	String splitString;

	public BinarySplit(String splitString) {
		super();
		this.splitString = splitString;
	}

	public void splitIt() {
		StringBuffer sbChinese = new StringBuffer();
		StringBuffer sbAlpha = new StringBuffer();
		String current = "";
		for (int i = 0; i < splitString.length(); i++) {
			current = splitString.substring(i, i + 1);
			if (current.matches("[\u4e00-\u9fa5]+")) {
				sbChinese.append(splitString.substring(i, i + 1));
				if ((i != splitString.length() - 1
						&& !splitString.substring(i + 1, i + 2).matches(
								"[\u4e00-\u9fa5]+"))||i == splitString.length() - 1) {
					if (sbChinese.length() > 2) {
						for (int j = 0; j +2 <= sbChinese.length(); j++) {
							System.out.println(sbChinese.substring(j, j + 2));
						}
					} else {
						System.out.println(sbChinese.toString());
					}
					sbChinese = new StringBuffer();
				}
			} else {
				sbAlpha.append(current);
				if (i != splitString.length() - 1
						&& splitString.substring(i + 1, i + 2).matches(
								"[\u4e00-\u9fa5]+")) {
					System.out.println(sbAlpha.toString());
					sbAlpha = new StringBuffer();
				}
			}
		}
	}

	public static void main(String[] args) {
		BinarySplit bs = new BinarySplit("中华人ABC民共DE和国人大代表");
		bs.splitIt();
	}

}

分享到:
评论

相关推荐

    二分法的Java实现

    二分法的Java实现

    java算法——二分法查找

    二分法查找 *进行二分法查找的前提是数组已有序 *查找范围的上下界

    二分法算法实现 示例

    ### 二分法算法实现详解 #### 知识点一:二分法基本概念与原理 二分法,又称折半查找法,是一种在有序数组中查找特定元素的高效算法。其基本思想是通过将搜索区间不断折半,从而快速定位目标值的位置。具体步骤...

    二分法求平方根算法,java源代码

    二分法求平方根算法,java源代码,可直接拷贝到主类中,在main函数中调用mysqrt函数,传入参数x,返回值即为sqrt(x)。注意,当传入值时,返回值为-1

    二分法排序算法 C语言实现

    根据给定的文件信息,我们可以总结出以下关于“二分法排序算法C语言实现”的相关知识点: ### 1. 二分法搜索算法原理 二分法搜索算法,也称为折半查找算法,是一种在有序数组中查找特定元素的搜索算法。其基本思想...

    Java常用高效8大排序算法与二分法查找

    本文将深入探讨Java中常用的八大排序算法以及二分法查找,旨在帮助算法爱好者和开发人员提升解决问题的能力。 首先,让我们来看Java中的八大排序算法: 1. 冒泡排序:这是一种简单的排序方法,通过重复遍历待排序...

    二分法java

    二分法java

    各类排序算法java的实现

    总结:以上代码展示了Java实现的四种基本排序算法:插入排序、冒泡排序、选择排序和希尔排序。这些算法各有特点,适用于不同的场景。插入排序和冒泡排序适合于小规模或部分有序的数据,而选择排序和希尔排序则在处理...

    8中排序算法(java实现)

    以下是关于标题"8种排序算法(Java实现)"及其描述中提到的排序算法的详细讲解: 1. **插入排序**: - **直接插入排序**:基本思想是从第二个元素开始,逐个与前面已排序的元素比较,找到合适的位置插入,保持已...

    Java常用排序算法&程序员必须掌握的8大排序算法+二分法查找

    本资料包聚焦于"Java常用排序算法"和"程序员必须掌握的8大排序算法",并深入探讨了"二分法查找"这一高效搜索技术。 首先,我们来看八大排序算法。这些算法包括: 1. **冒泡排序**:最简单的排序方法,通过不断交换...

    九章算法之二分法(Binary Search)

    九章算法之二分法(Binary Search) 适合找工作的小伙伴

    二分法查找算法代码 c语言实现

    在这个资源包中,我们重点关注的是使用C语言实现的二分法查找算法。 在C语言中,二分法查找的基本思路是这样的: 1. 首先,我们需要一个已排序的数组,因为二分法依赖于数据的有序性。 2. 然后,设置两个指针,一...

    Java实现二分法.rar

    下面是一个简单的Java二分法实现示例: ```java public class BinarySearch { public static int binarySearch(int[] array, int target) { int left = 0; int right = array.length - 1; while (left ) { ...

    各种排序算法java实现

    Java作为广泛应用的编程语言,提供了丰富的工具和技术来实现这些算法。以下将详细解释标题和描述中提及的各种排序算法,并通过Java语言的角度进行阐述。 1. **堆排序**(Heap Sort): 堆排序是一种基于比较的排序...

    科学与工程数值算法(Java版)

    《科学与工程数值算法(Java版)》是清华大学出版社出版的一部专著,它深入探讨了如何使用Java编程语言实现科学和工程领域的数值计算方法。数值算法在科研和工程领域中扮演着至关重要的角色,它们是解决复杂问题、进行...

    java 冒泡算法和插入法排序,二分法查找

    本文将深入探讨Java中的冒泡排序、插入排序以及二分法查找这三种基础算法,这些都是面试时经常会被问到的技术点。 首先,让我们从冒泡排序开始。冒泡排序是一种简单直观的排序算法,它重复地遍历待排序的数列,一次...

    用javascript实现的十大排序算法详解

    本篇文章将深入探讨如何使用JavaScript实现十大经典排序算法,帮助开发者更好地理解和运用这些算法。 1. 冒泡排序(Bubble Sort) 冒泡排序是一种简单的排序方法,通过重复遍历待排序的数组,比较相邻元素并交换...

    写出二分法查找算法函数实现。

    ### 二分法查找算法详解 #### 一、引言 二分法查找(Binary Search),也称为折半查找,是一种在有序数组中查找特定元素的高效算法。它的工作原理是通过将查找区间不断地对半分来缩小查找范围,直至找到目标元素或...

    java 二分法算法的实例

    下面是 Java 二分法算法的实例,介绍了二分法算法的实现方法和原理。 二分法算法的原理 二分法算法的原理是将数组分为三部分,依次是中值(所谓的中值就是数组中间位置的那个值)前,中值,中值后。然后将要查找的...

Global site tag (gtag.js) - Google Analytics