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源代码,可直接拷贝到主类中,在main函数中调用mysqrt函数,传入参数x,返回值即为sqrt(x)。注意,当传入值时,返回值为-1
根据给定的文件信息,我们可以总结出以下关于“二分法排序算法C语言实现”的相关知识点: ### 1. 二分法搜索算法原理 二分法搜索算法,也称为折半查找算法,是一种在有序数组中查找特定元素的搜索算法。其基本思想...
本文将深入探讨Java中常用的八大排序算法以及二分法查找,旨在帮助算法爱好者和开发人员提升解决问题的能力。 首先,让我们来看Java中的八大排序算法: 1. 冒泡排序:这是一种简单的排序方法,通过重复遍历待排序...
二分法java
总结:以上代码展示了Java实现的四种基本排序算法:插入排序、冒泡排序、选择排序和希尔排序。这些算法各有特点,适用于不同的场景。插入排序和冒泡排序适合于小规模或部分有序的数据,而选择排序和希尔排序则在处理...
以下是关于标题"8种排序算法(Java实现)"及其描述中提到的排序算法的详细讲解: 1. **插入排序**: - **直接插入排序**:基本思想是从第二个元素开始,逐个与前面已排序的元素比较,找到合适的位置插入,保持已...
本资料包聚焦于"Java常用排序算法"和"程序员必须掌握的8大排序算法",并深入探讨了"二分法查找"这一高效搜索技术。 首先,我们来看八大排序算法。这些算法包括: 1. **冒泡排序**:最简单的排序方法,通过不断交换...
九章算法之二分法(Binary Search) 适合找工作的小伙伴
在这个资源包中,我们重点关注的是使用C语言实现的二分法查找算法。 在C语言中,二分法查找的基本思路是这样的: 1. 首先,我们需要一个已排序的数组,因为二分法依赖于数据的有序性。 2. 然后,设置两个指针,一...
下面是一个简单的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语言的角度进行阐述。 1. **堆排序**(Heap Sort): 堆排序是一种基于比较的排序...
《科学与工程数值算法(Java版)》是清华大学出版社出版的一部专著,它深入探讨了如何使用Java编程语言实现科学和工程领域的数值计算方法。数值算法在科研和工程领域中扮演着至关重要的角色,它们是解决复杂问题、进行...
本文将深入探讨Java中的冒泡排序、插入排序以及二分法查找这三种基础算法,这些都是面试时经常会被问到的技术点。 首先,让我们从冒泡排序开始。冒泡排序是一种简单直观的排序算法,它重复地遍历待排序的数列,一次...
本篇文章将深入探讨如何使用JavaScript实现十大经典排序算法,帮助开发者更好地理解和运用这些算法。 1. 冒泡排序(Bubble Sort) 冒泡排序是一种简单的排序方法,通过重复遍历待排序的数组,比较相邻元素并交换...
### 二分法查找算法详解 #### 一、引言 二分法查找(Binary Search),也称为折半查找,是一种在有序数组中查找特定元素的高效算法。它的工作原理是通过将查找区间不断地对半分来缩小查找范围,直至找到目标元素或...
下面是 Java 二分法算法的实例,介绍了二分法算法的实现方法和原理。 二分法算法的原理 二分法算法的原理是将数组分为三部分,依次是中值(所谓的中值就是数组中间位置的那个值)前,中值,中值后。然后将要查找的...