`

java 中将以逗号分隔的字符串按照N个一组划分的方法

阅读更多

import java.util.ArrayList;
import java.util.List;

/**
 * @author thinkpad
 *
 */
public class TestString {

	
	/**
	 * 循环查找
	 * @param source
	 * @param target
	 * @param num
	 * @param result
	 */
	public static List<String>  findStringArray(String source,String target,int num){
		List<String> result = new ArrayList<String>(0);
		int index =0;
		int preIndex = 0;
		int sum = 0;
		while((index=source.indexOf(target,index))!=-1){
			index ++;
			sum++;
			if(sum > 0 && sum%num==0){
				String s =source.substring(preIndex, index);
				s=s.substring(0, s.lastIndexOf(target));
				preIndex =index;
				result.add(s);
			}
		}
		if(preIndex<source.length()){
			if(source.endsWith(target)){
				String s =source.substring(preIndex);
				int lastCommaIndex = s.lastIndexOf(target);
				if(lastCommaIndex!=-1){
					s=s.substring(0,lastCommaIndex);
				}
				result.add(s);
			}else{
				result.add(source);
			}
		}
		return result;
	}
	
	/**递归查找
	 * @param source
	 * @param target
	 * @param num
	 * @param result
	 * @return
	 */
	public static boolean  findStringArrayWhile(String source,String target,int num,List<String> result ){
		int index =0;
		int sum = 0;
		if(source.indexOf(target)==-1){
			result.add(source);
			return true;
		}
		while((index=source.indexOf(target,index))!=-1){
			sum++;
			index++;
			if(sum > 0 && sum%num==0){
				String s =source.substring(0, index);
				s=s.substring(0, s.lastIndexOf(target));
				result.add(s);
				if(source.length()<index){
					result.add(source);
					return true;
				}
				source = source.substring(index);
				boolean t =findStringArrayWhile(source, target, num, result);
				if(t){
					return true;
				}
			}
		}
		if(source.length()%num<num){
			result.add(source);
			return true;
		}
		return false;
	}
	
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		String source="1,2,3,4,5,6,7,8,9,0";
		List<String> result =new ArrayList<String>(0);
		result=findStringArray("1,2,3,4", ",",4);
		 
		
		findStringArrayWhile(source, ",", 10, result);
		for(String s:result){
			System.out.println(s);
		}
	}
	

}
欢迎测试,欢迎提bug
0
0
分享到:
评论

相关推荐

    将逗号分隔的字符串转换为行记录.rar

    首先,理解问题的核心:我们需要将一个单元格中的逗号分隔字符串拆分为多行。例如,如果单元格A1中有"苹果,香蕉,橙子",我们期望将其转换为三行,每行一个水果名称。在Excel的VBA环境中,这可以通过遍历字符串并检测...

    mybatis Mapper.xml中传参多选 字符串形式逗号分隔 AND中拼接OR.rar

    例如,如果用户选择的标签以逗号分隔的字符串"tag1,tag2,tag3"传入,我们可以在Java代码中将其分割并存入List。 接下来,我们将焦点转到Mapper.xml文件。在SQL语句中,我们可以使用`&lt;foreach&gt;`标签来遍历集合中的...

    Oracle字段转字符串/多行记录合并/连接/聚合字符串的几种方法

    这将按照`column2`的顺序生成一个带有逗号分隔的字符串。 7. **用户定义的聚合函数 (UDAF)**: 如果内置函数不能满足需求,还可以创建自定义的聚合函数。这需要编写PL/SQL包,包含初始化、累积和最终化步骤。 在...

    字符串反解析成树结构

    在解析字符串时,我们会首先按照关键字(如"id", "pid"等)进行分割,然后将每条数据映射到一个`Map`对象中,例如`HashMap, String&gt;`。每条数据映射为键值对,键是关键字,值是对应的数据。接着,我们将所有映射项...

    MATLAB代码示例,用于将一个字符串添加到字符串数组的末尾(附详细步骤).txt

    本文将详细介绍如何在MATLAB中将一个新的字符串添加到现有的字符串数组中,并确保该字符串不被重复添加。 #### 二、核心代码解析 首先,让我们来看看核心代码部分: ```matlab % 创建一个包含3个字符串的字符串...

    (c#)字符串转换成字符数组 字符串转换成int 数组

    如果字符串中包含分隔符(如逗号、空格等),可以使用`Split()`方法来分割字符串,并将结果存储在一个字符串数组中。例如: ```csharp string str = "a,b,c,d"; string[] arr = str.Split(','); // 输出结果:a b ...

    sql server 2008 将一列值转换成一个字符串

    假设我们有一个名为`entp`的表,其中包含一个名为`innerID`的整数字段,现在我们需要将这个字段的所有值转换为一个由逗号分隔的字符串。 #### SQL语句实现 下面的SQL语句展示了如何实现这一目标: ```sql DECLARE...

    PHP 把字符串转换为数组支持中文

    例如,如果我们有一个以逗号分隔的字符串,可以这样操作: ```php $str = "apple,banana,grape"; $array = explode(",", $str); ``` 在这个例子中,`$array`将会是一个包含三个元素的数组:`['apple', 'banana', '...

    MySQL将一个字段中以逗号分隔的取出来形成新的字段实现

    在MySQL数据库中,经常遇到需要处理以逗号分隔的字段值的情况,这些字段通常用于存储多值数据,比如在本例中,`related_shop_ids`字段存储了多个商店ID,用逗号分隔。本篇文章将详细讲解如何将这样的字段拆分成多个...

    Mysql通过存储过程分割字符串为数组

    在MySQL中,处理字符串时,有时需要将一个字符串分割成多个部分,这通常在处理以特定字符分隔的数据时出现。本话题主要介绍如何利用存储过程来实现这一功能,涉及的关键知识点包括MySQL的内置函数以及存储过程的创建...

    MySQL中将一列以逗号分隔的值行转列的实现

    即一列中存储了多个属性值。如下表 pk value 1 ET,AT 2 AT,BT 3 AT,DT 4 DT,CT,AT 一般有这两种常见需求(测试数据见文末) 1.得到所有的不重复的值,如 value AT BT CT DT ET SQL...

    java实现二维数组转json的方法示例

    3. 初始化一个布尔变量`first`,用于处理数组的第一个元素是否需要添加逗号分隔。 4. 使用`for`循环遍历`blogList`,对于每个子数组`blogItem`: - 检查是否是第一个元素,如果不是,就在`sb`后面添加逗号。 - ...

    ajax json java 用法 json 将List、Object转换为Json格式字符串

    本文将详细介绍如何在 Java 中将 List 和 Object 类型的数据转换成 JSON 格式字符串,并通过一个具体的示例来演示整个过程。 #### 一、JSON 的基本概念 JSON 是一种数据交换格式,它基于 JavaScript 的语法但独立...

    JQ 数组转成为字符串.rar

    例如,如果你有一个数组`arr = ['apple', 'banana', 'cherry']`,你可以使用`arr.join(',')`将它们以逗号分隔成字符串"apple,banana,cherry"。 2. `JSON.stringify()`方法: 这是JavaScript的一个全局函数,它可以...

    javascript 根据指定字符把字符串拆分为数组

    JavaScript提供了多种字符串操作的方法,其中包括split()方法,用于将字符串按照指定的分隔符拆分,并将结果存储在一个数组中。 split()方法是JavaScript中String对象的一个重要方法。它接受两个参数:第一个参数是...

    把数值逗号分隔的函数(e.g. 123456=>123,456)

    标题中的“把数值逗号分隔的函数”指的是在编程中将一个整数或浮点数转换为人类可读的格式,即在每三位数字后添加逗号作为千位分隔符。这样的功能常见于财务软件或者数据分析工具,用于提高数字的可读性。例如,将...

    各种对象转成JSON字符串 (2).docx

    对于数组,`array2json()`方法会遍历数组中的每个元素,调用`object2json()`将元素转换为JSON字符串,并以逗号分隔,最后用方括号包围。这样,一个数组就会被转换为JSON数组的形式,如`[value1, value2, ...]`。 3...

    详解MySQL中concat函数的用法(连接字符串)

    另外,MySQL还提供了一个`GROUP_CONCAT`函数,它用于在分组查询中将相同组内的多行数据合并为一个字符串,通常用于聚合操作。`GROUP_CONCAT`的语法如下: ```sql GROUP_CONCAT([DISTINCT] 字段 [ORDER BY 排序字段]...

    JavaScript中将值转换为字符串的五种方法总结

    `.toString()` 方法在所有原始类型(包括 `Symbol`)上都能工作,但结果可能会因类型不同而异,如数组会返回逗号分隔的元素列表,对象则返回 "[object Object]"。 5. **`String()` 函数** `String()` 是一个全局...

    Unity3D中任意类型数据转换成json数据的方法2

    文章中提到的两个方法 `ListToJson&lt;T&gt;`,接收一个泛型列表 `IList&lt;T&gt;`,并将其转换为JSON字符串。第一个方法需要指定JSON对象的名称(jsonName),第二个方法会自动取列表中第一个元素的类型名作为JSON对象的名称。...

Global site tag (gtag.js) - Google Analytics