package collection;
import java.util.ArrayList;
import java.util.List;
/**
* List<String> list1 = new ArrayList<String>();
String[] str = new String[] { "a,b", "b,c", "c,d", "b,e", "e,f","h,g" };
for (String s : str) {
list1.add(s);
}
编写函数,实现将list1 中的数据输出为如下:
a,b,c,d
a,b,e,f
h,g
* @author zyn
*
*/
public class ArrayTest {
public static void main(String[] args){
String[] str = new String[] { "a,b", "b,c", "c,d", "b,e", "e,f","h,g" };
//str的copy,不做改变
String[] strCopy = str;
//存放最终的list
List<String> strList = new ArrayList<String> ();
/**
* a,b可能被其他的公用拼接字符串,那么从前往后拼接
*/
for(int i=0;i<str.length;i++){
String[] strArr = str[i].split(",");
//str第i个字符是否和其他字符拼接,若拼接则不往strList中添加
boolean flag = false;
for(int ii=0;ii<strCopy.length;ii++){
String[] strArrCopy = strCopy[ii].split(",");
//如果str[i]的开始字符和strcopy[ii]的结束字符相同,拼接str的第ii个元素(a,b,b,c 替换b,b为b)
if(strArr[strArr.length-1].equals(strArrCopy[0])){
str[ii] = (str[i]+","+str[ii]).replace(strArrCopy[0]+","+strArrCopy[0], strArrCopy[0]);
flag = true;
}
}
if(!flag){
strList.add(str[i]);
}
}
for(String s:str){
System.out.println(s);
}
System.out.println("****************");
for(String s:strList){
System.out.println(s);
}
}
}
相关推荐
3. **合并**:将已排序的子数组合并回原来的多维数组。这个过程需要注意保持原有的数据关系,确保合并后的数组仍然是有序的。 在`Merge_sorting.m`这个脚本中,开发者可能已经实现了这些步骤。通常,这个脚本会包含...
有m个数组,每个数组有n个元素。列出所有可能的组合。 如:arr1{aa,bb,cc},arr2{11,22,33},得到的组合是: aa11,aa22,aa33,bb11,bb22,bb33,cc11,cc22,cc33
2. 数组内存布局:数组在内存中是一段连续的空间,每个元素按顺序存储。因此,当我们将一个数组转换为另一个类型时,我们需要考虑到元素大小的差异。例如,int通常占用4个字节,而uchar占用1个字节。这意味着4个...
# 给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。 # 输入示例 # 输入:nums = [-4,-1,0,3,10] # 输出:[0,1,9,16,100] # 解释:平方后,数组变为 [16,...
标题提到的问题是“如何先按数字排序,然后按数组中的字符排序?”这个问题涉及到Python中的多级排序,也称为复合排序。在处理包含混合类型元素(如数字和字符串)的列表时,这种排序方式尤其有用。下面我们将详细...
例如,如果对性能有较高要求,可以考虑使用堆栈方法;而在简单示例或调试阶段,循环方法则更为直观。无论哪种实现方式,理解和掌握排列组合的基本概念及其在C#中的实现,对于提升编程能力具有重要意义。
本问题要求我们创建一个动态数组,其长度由用户输入决定,然后从屏幕上接收一组数字填充数组。接着,我们需要实现一系列功能,包括找到数组中的最大值、最小值以及它们对应的索引。下面将详细介绍如何实现这个任务。...
数组全排列是指将数组中的元素按不同顺序重新组合,形成所有可能的排列方式。而元素所有组合则是指从数组中取出任意数量的元素,形成所有可能的组合。本知识点将详细介绍如何用PHP实现这两个功能,同时涵盖数组的...
题目要求将多个整数数组按照特定规则合并成一个新的数组。以下是对这个题目的详细解析: 首先,我们需要理解题目的核心要求。题目中提到的“合并规则”是:从每个数组中依次取出固定长度的内容,将这些内容合并到新...
3. **排序要求**:默认情况下,LOOKUP要求查找范围按升序排列。如果`lookup_value`不在查找范围的最小值和最大值之间,函数会返回错误。在处理内存数组时,确保数据正确排序至关重要。 4. **模糊匹配**:通过设置`...
例如,如果我们要求5的阶乘,数组初始化为[1, 1, 1, 1, 1, 1],然后依次进行如下操作: - 第一轮:1 × 2 = 2,数组变为 [1, 2, 1, 1, 1, 1] - 第二轮:2 × 3 = 6,数组变为 [1, 2, 6, 1, 1, 1] - 第三轮:6 × 4 =...
这样,每次递归都会在前缀上添加一个新元素,直到子列表为空,此时打印出组合(这里注释掉了,因为题目要求只计算组合的个数)。 递归结束条件是子列表为空,此时会返回到上一层递归,继续处理剩余的元素。最后,...
**示例**:使用“创建数组”函数将多个数值组合成一个数组。 ##### 方法2:循环构建数组 **操作方式**:利用FOR循环或者WHILE循环逐个添加元素至数组。 **特点**: - **灵活性高**:可以根据条件动态地改变数组...
- **转换**:可以使用`cell2mat`函数将元胞数组转换为常规矩阵,但要求所有元胞的内容都是相同尺寸的数值数组。 - **遍历**:通过`for`循环或`cellfun`函数可以对元胞数组的每个元素执行特定操作。 6. **元胞数组...
杨辉三角形是一个二维数组的典型应用,用于展示组合数的规律。实验中通过双重循环实现,外层循环控制行数,内层循环控制每行的列数。每一行的第一个和最后一个元素都是1,其他元素等于上一行相邻两个元素之和。通过...
四、输入一个字符串,字符串是字母和数字的组合,编程实现输出一个新的字符串,要求字母在前面,数字在后面,顺序不变,例如:2s7ess83a 变成sessa2783 五、一个字符串,获取最长的一个单词,如有多个相同...
在使用数组公式时,需要按下Ctrl + Shift + Enter键来输入公式,而不是仅按Enter键,这样Excel会将公式视为数组公式处理。 例如,如果要对满足特定条件的单元格进行计数,通常我们会用到COUNTIF函数。但当条件变得...
归并排序是利用分治法的一个非常典型的应用,将数组分为两个子数组,分别进行排序,然后将排序后的子数组合并。其时间复杂度稳定在O(nlogn),但需要额外的存储空间。 7. **堆排序** 堆排序利用了完全二叉树的特性...
在此次试验中,可能会要求学生创建和操作数组,例如找出数组中的最大值或计算数组的平均值。 过程是VB.NET中实现代码重用和模块化的重要手段,分为Sub过程和Function过程。Sub过程不返回值,主要用于执行一系列操作...