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
分享到:
相关推荐
首先,理解问题的核心:我们需要将一个单元格中的逗号分隔字符串拆分为多行。例如,如果单元格A1中有"苹果,香蕉,橙子",我们期望将其转换为三行,每行一个水果名称。在Excel的VBA环境中,这可以通过遍历字符串并检测...
例如,如果用户选择的标签以逗号分隔的字符串"tag1,tag2,tag3"传入,我们可以在Java代码中将其分割并存入List。 接下来,我们将焦点转到Mapper.xml文件。在SQL语句中,我们可以使用`<foreach>`标签来遍历集合中的...
这将按照`column2`的顺序生成一个带有逗号分隔的字符串。 7. **用户定义的聚合函数 (UDAF)**: 如果内置函数不能满足需求,还可以创建自定义的聚合函数。这需要编写PL/SQL包,包含初始化、累积和最终化步骤。 在...
在解析字符串时,我们会首先按照关键字(如"id", "pid"等)进行分割,然后将每条数据映射到一个`Map`对象中,例如`HashMap, String>`。每条数据映射为键值对,键是关键字,值是对应的数据。接着,我们将所有映射项...
本文将详细介绍如何在MATLAB中将一个新的字符串添加到现有的字符串数组中,并确保该字符串不被重复添加。 #### 二、核心代码解析 首先,让我们来看看核心代码部分: ```matlab % 创建一个包含3个字符串的字符串...
如果字符串中包含分隔符(如逗号、空格等),可以使用`Split()`方法来分割字符串,并将结果存储在一个字符串数组中。例如: ```csharp string str = "a,b,c,d"; string[] arr = str.Split(','); // 输出结果:a b ...
假设我们有一个名为`entp`的表,其中包含一个名为`innerID`的整数字段,现在我们需要将这个字段的所有值转换为一个由逗号分隔的字符串。 #### SQL语句实现 下面的SQL语句展示了如何实现这一目标: ```sql DECLARE...
例如,如果我们有一个以逗号分隔的字符串,可以这样操作: ```php $str = "apple,banana,grape"; $array = explode(",", $str); ``` 在这个例子中,`$array`将会是一个包含三个元素的数组:`['apple', 'banana', '...
在MySQL数据库中,经常遇到需要处理以逗号分隔的字段值的情况,这些字段通常用于存储多值数据,比如在本例中,`related_shop_ids`字段存储了多个商店ID,用逗号分隔。本篇文章将详细讲解如何将这样的字段拆分成多个...
在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...
3. 初始化一个布尔变量`first`,用于处理数组的第一个元素是否需要添加逗号分隔。 4. 使用`for`循环遍历`blogList`,对于每个子数组`blogItem`: - 检查是否是第一个元素,如果不是,就在`sb`后面添加逗号。 - ...
本文将详细介绍如何在 Java 中将 List 和 Object 类型的数据转换成 JSON 格式字符串,并通过一个具体的示例来演示整个过程。 #### 一、JSON 的基本概念 JSON 是一种数据交换格式,它基于 JavaScript 的语法但独立...
例如,如果你有一个数组`arr = ['apple', 'banana', 'cherry']`,你可以使用`arr.join(',')`将它们以逗号分隔成字符串"apple,banana,cherry"。 2. `JSON.stringify()`方法: 这是JavaScript的一个全局函数,它可以...
JavaScript提供了多种字符串操作的方法,其中包括split()方法,用于将字符串按照指定的分隔符拆分,并将结果存储在一个数组中。 split()方法是JavaScript中String对象的一个重要方法。它接受两个参数:第一个参数是...
标题中的“把数值逗号分隔的函数”指的是在编程中将一个整数或浮点数转换为人类可读的格式,即在每三位数字后添加逗号作为千位分隔符。这样的功能常见于财务软件或者数据分析工具,用于提高数字的可读性。例如,将...
对于数组,`array2json()`方法会遍历数组中的每个元素,调用`object2json()`将元素转换为JSON字符串,并以逗号分隔,最后用方括号包围。这样,一个数组就会被转换为JSON数组的形式,如`[value1, value2, ...]`。 3...
另外,MySQL还提供了一个`GROUP_CONCAT`函数,它用于在分组查询中将相同组内的多行数据合并为一个字符串,通常用于聚合操作。`GROUP_CONCAT`的语法如下: ```sql GROUP_CONCAT([DISTINCT] 字段 [ORDER BY 排序字段]...
`.toString()` 方法在所有原始类型(包括 `Symbol`)上都能工作,但结果可能会因类型不同而异,如数组会返回逗号分隔的元素列表,对象则返回 "[object Object]"。 5. **`String()` 函数** `String()` 是一个全局...
文章中提到的两个方法 `ListToJson<T>`,接收一个泛型列表 `IList<T>`,并将其转换为JSON字符串。第一个方法需要指定JSON对象的名称(jsonName),第二个方法会自动取列表中第一个元素的类型名作为JSON对象的名称。...