将字符串1|2|3|4|5(|为固定,但是里面的内容可能为多个如1,2|3,6|4|5|6,可能每部分内容都为多个,拆分内容依次类推)
希望得到结果13456 16456 23456 26456 ,
求高手指点一二,
这个问题很简单,楼主还需要解答吗?若需要请说明使用何种语言,C#还是?
x需要,麻烦你了
@流浪的程序员:
请问哪种语言?
@脚本王子: c#
@流浪的程序员: 没问题,我等,谢谢了
@流浪的程序员: 列出完整的C#控制台程序代码给你.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace string_split
{
class Program
{
static void Main(string[] args)
{
string str = "1,2|3,4|5,6|7,8,9|0";
string [] arr_row = str.Split('|');
// 用这个数组保存最终的返回值
string[] arr = arr_row[0].Split(',');
for (int i = 1; i < arr_row.Length; i++ )
{
string [] arr_elem = arr_row[i].Split(',');
string [] arr_new = new string [arr.Length * arr_elem.Length];
int n = 0;
for (var j = 0; j < arr.Length; j++)
{
for (var k = 0; k < arr_elem.Length; k++)
{
arr_new[n++] = arr[j] + arr_elem[k];
}
}
arr = arr_new;
arr_new = null;
}
Console.WriteLine(arr.Length);
for (int i = 0; i < arr.Length; i++)
{
Console.WriteLine(arr[i]);
}
Console.ReadLine();
}
}
}
@脚本王子: 谢谢,这样可以,
@流浪的程序员: 不客气,我觉得这个逻辑比较简单,所以没有写注释,有什么不明白的尽管问。
split之后循环拼接呗,希望楼下有更好的办法
能贴下代码吗?我现在的难点在怎么去改变这个数组的元素,改一个好改,2个以及更多就不知道怎么改了
split,先根据“|”分割,再根据“,”分割,然后拼接
这些我都知道,我的难点在于怎么去改变数组的值,然后组装成多个结果,
@流浪的程序员: 改变数组的值,不一样么,先遍历数组呗,然后逐个分割
@小光: 比如1,2|3,6|4|5|9 我把这个拆分了arr 并且用hashtable记住了前2个位置(key)和内容(value),然后我把前2个位置替换成了一个字符 如$|$||4|5|9,
//定义一个 存放结果的list
List<sting> arrList=new list<string>();
然后我循环hashtable
{
string list=hashtable.value.split(',');
for(int i=0;i<list.length;i++){
arr[hashtable.key]=list[i]
arrList.add( getstr(arr));//getstr() 把数组专程字符串
}
}
最后结果:
@流浪的程序员: 很久没有写C#了,暂时没得vs可调式,我找下,等等
@脚本王子: 还在吗