如何给string []添加一个元素

laoyingisme 2011-08-10 12:13:09
str="1,2,6";

string[] al= str.ToString().Split(',');


如何添加一个元素'3',得到1,2,3,6.

请大家帮忙!
...全文
28139 41 打赏 收藏 转发到动态 举报
写回复
用AI写文章
41 条回复
切换为时间正序
请发表友善的回复…
发表回复
jdergon_2008 2011-08-21
  • 打赏
  • 举报
回复
怎么弄的这么复杂啊?不考虑下vector<string>
wang_jitang02 2011-08-17
  • 打赏
  • 举报
回复
晕倒,搞那么多干嘛
string A ="2,4";
string B ="1,4,6,7,8";
string C= A+","+B;
string[] arr=C.split(',');
ji_ba_mao 2011-08-16
  • 打赏
  • 举报
回复
mark
--reply by CSDN Study V1.0.0.3 (starts_2000)
quifar123 2011-08-16
  • 打赏
  • 举报
回复
用列表做,然后再转会数组!
极地_雪狼 2011-08-16
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 q107770540 的回复:]
al=al.Contact(new string[]{"3"}).OrderBy(a=>Convert.ToInt32(a)).ToArray();
[/Quote]+1
翘楚时代 2011-08-16
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 abbey 的回复:]
string[] al= str.ToString().Split(',');

1. str本来就是string,再ToString()略显多余
2. Split()返回的结果是string[],大小是固定的,没法直接添加

变相地可以采用泛型添加,如下:

C# code

str="1,2,6";
string[] al= str.Split(',');
List<st……
[/Quote]

已验证,正确。
「已注销」 2011-08-16
  • 打赏
  • 举报
回复
哈哈~ 俺是来打酱油了。。。
nizaiganshenme 2011-08-16
  • 打赏
  • 举报
回复
删除再添加啊
牙痴 2011-08-15
  • 打赏
  • 举报
回复
String ss = str.split(",");
ss[ss.length] = ss[ss.length-1];
ss[ss.length-2] = "3";
System.out.println(ss.toString());

js可以的
lw8601100 2011-08-14
  • 打赏
  • 举报
回复
直接在数组中插入 3
//数组里指定元素前插入一个元素

int[] myArray=new int[]{1,2,6};//原来的数组

int insertVal = 3; //要插入的元素
int insertIndexVal = 6; //要插入元素的位置,插在6前面。
int insertIndex = -1; //插入元素的下标的位置,初始定为-1

//声明一个新的数组,用来存放插入元素后的数组,长度是原来数组长度加1
int[] newArray = new int[myArray.length+1];

//通过循环找到要插入元素的下标
for(int i=0; i<myArray.Length;i++)
{
if(myArray[i] == insertIndexVal)
{
insertIndex = i;
break;
}
}

//先将插入元素位置前的所有元素添加到新数组中
for(int i=0; i<insertIndex; i++)
{
newArray[i] = myArray[i];
}

//插入元素
newArray[insertIndex] = insertVal;

//再将插入元素位置后的所有元素添加到新数组中
for(int i = insertIndex+1; i<newArray.Length; i++)
{
newArray[i] = myArray[i-1];
}

//输出结果
for(int i=0; i<newArray.Length;i++)
{
console.Write(newArray[i]+" ");
}
wanzhuan2010 2011-08-14
  • 打赏
  • 举报
回复

String[]是定长的,一但确定维数,就不能改变,可以转换为ArrayList或List再进行处理!
C# code


str+=",3";
string[] al= str.Split(',');
[/Quote]
CqCoder 2011-08-12
  • 打赏
  • 举报
回复
[Quote=引用 28 楼 ciznx 的回复:]
引用 11 楼 laoyingisme 的回复:

实际上我的需求是两是集合的合并:

string A ="2,4";
string B ="1,4,6,7,8";

想写个function得到 "1,2,4,6,7,8";

大家出写方法,谢谢!



这个小问题回复这么多……

通篇看了楼上诸位的回复,我想得出两条基本结论:
1 大家很热心,但到现在也没搞出答……
[/Quote]

正解
ciznx 2011-08-12
  • 打赏
  • 举报
回复
[Quote=引用 28 楼 ciznx 的回复:]

这个小问题回复这么多……

通篇看了楼上诸位的回复,我想得出两条基本结论:
1 大家很热心,但到现在也没搞出……
[/Quote]

改成 string[] 的 concatArray 之后,再调用 String.Join 方法搞定你的需求了

相信我,不用整那么多、那么恐怖的类啊……怕怕
ciznx 2011-08-12
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 laoyingisme 的回复:]

实际上我的需求是两是集合的合并:

string A ="2,4";
string B ="1,4,6,7,8";

想写个function得到 "1,2,4,6,7,8";

大家出写方法,谢谢!
[/Quote]


这个小问题回复这么多……

通篇看了楼上诸位的回复,我想得出两条基本结论:
1 大家很热心,但到现在也没搞出答案来
2 楼主的问题也没说清楚,导致大家没有明白楼主的意思

好吧,贴子标题说得很清楚了,是要给 string[] 添加一个元素
也就是说,给一个固定的数组添加一个元素,很简单的任务嘛,没有这么复杂的,这么劳神费众的:还要用List,还要用排序等等等。

可以很清楚的是,楼主的 Target Framework 是 2.0 版的,所以甭使用扩展的方法了,此外楼主需要一个函数,没错吧?


static object[] concatArray(object[] arrayA, object[] arrayB)
{
int lenA = (arrayA == null ? 0 : arrayA.Length);
int len = lenA + (arrayB == null ? 0 : arrayB.Length);
object[] result = new object[len];

if (arrayA != null)
{
arrayA.CopyTo(result, 0);
}

if (arrayB != null)
{
arrayB.CopyTo(result, lenA);
}

return result;
}



非要强类型的 String 的话,你自己改改吧:
简单的,把上面代码里的 object 都换成 String;复杂但通用的,把它改成泛型方法。

希望楼主满意




  • 打赏
  • 举报
回复
JAVA:
String str = "1,2,6";
str += ",3,4";
String[] al = str.split(",");
Arrays.sort(al);
System.out.println(al);
  • 打赏
  • 举报
回复
a+b 排序
a_6543216_bbb 2011-08-12
  • 打赏
  • 举报
回复
好难啊
krenyelang 2011-08-12
  • 打赏
  • 举报
回复
string str = "1,2,6";
str=str.Insert(3, ",3");
Console.WriteLine(str);

这样可以,我调试了。
coder_s 2011-08-12
  • 打赏
  • 举报
回复
//1
string[] al = str.ToString().Split(',');
var temp=al.Concat(new string[] { "3" });
int[] newal = temp.Select(e=>int.Parse(e)).orderBy(e => e).toarray(); ;

//2
string newstr= string.Join(",", al) + ",3";
newal = newstr.Split(',').Select(e => int.Parse(e)).orderBy(e => e).toarray(); ;

//3
list<string> newlist = al.tolist();
newlist.Add("3");
list<int> intlist = newlist.convertall<int>(e => int.parse(e)).orderby(e => e).ToList();

//4
string str1 = "1,2,6",str2 = "3,4";
stringbuilder strb = new stringbuilder();
strb.append(str1).append(",").append(str2);
int[] intarray = strb.tostring().splite(',').select(e => int.parse(e)).orderby(e => e).toarray();

nashe 2011-08-11
  • 打赏
  • 举报
回复
改一下数据类型吧,string[] 为 list<string>,然后排序。
这样设计会比较灵活。即使再增加新数字也很容易处理
加载更多回复(20)

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧