我想传递一个字符串数组(用逗号分隔),然后用一个函数用逗号分隔传递的数组,并用分隔符代替逗号。
我会用一些破碎的代码向你展示我的意思:
String FirstData = "1";
String SecondData = "2" ;
String ThirdData = "3" ;
String FourthData = null;
FourthData = AddDelimiter(FirstData,SecondData,ThirdData);
public String AddDelimiter(String[] sData)
{
// foreach ","
String OriginalData = null;
// So, here ... I want to somehow split 'sData' by a ",".
// I know I can use the split function - which I'm having
// some trouble with - but I also believe there is some way
// to use the 'foreach' function? I wish i could put together
// some more code here but I'm a VB6 guy, and the syntax here
// is killing me. Errors everywhere.
return OriginalData;
}
答案 0 :(得分:2)
语法在这里并不重要,您需要了解基类库。此外,您希望显然加入字符串,而不是将其拆分:
var s = string.Join(",", arrayOFStrings);
此外,如果要将n字符串传递给类似的方法,则需要params关键字:
public string Join( params string[] data) {
return string.Join(",", data);
}
答案 1 :(得分:1)
分裂:
string[] splitString = sData.Split(new char[] {','});
要加入新的分隔符,请将字符串数组传递给String.Join
:
string colonString = String.Join(":", splitString);
我认为您最好使用Replace,因为您只需要将一个分隔符替换为另一个分隔符:
string differentDelimiter = sData.Replace(",", ":");
答案 2 :(得分:0)
Split函数的一个版本需要一个字符数组。这是一个例子:
string splitstuff = string.Split(sData[0],new char [] {','});
答案 3 :(得分:0)
如果您不需要对两者之间的部件进行任何处理,只需更换分隔符,您可以使用Replace
method on the String
class轻松完成:
string newlyDelimited = oldString.Replace(',', ':');
对于大字符串,这将为您提供更好的性能,因为您不必完全通过字符串将其拆分,然后通过这些部分将它们重新连接在一起。
但是,如果您需要处理各个部分(将它们重新组合成另一个不像分隔符的简单替换的形式),那么您将使用Split
method on the String
class来获取分隔的数组项目,然后将其插入您希望的格式。
当然,这意味着您必须对分隔字符串的每个部分的含义有一些明确的知识。
答案 4 :(得分:0)
如果您有多个对象并且想要将它们放在一个数组中,您可以写:
string[] allData = new string[] { FirstData, SecondData, ThirdData };
然后你可以简单地将它交给函数:
FourthData = AddDelimiter(allData);
C#有一个很好的技巧,如果你在函数定义中添加一个params
关键字,你就可以将它视为具有任意数量参数的函数:
public String AddDelimiter(params String[] sData) { … }
…
FourthData = AddDelimiter(FirstData, SecondData, ThirdData);
至于实际实施,最简单的方法是使用string.Join()
:
public String AddDelimiter(String[] sData)
{
// you can use any other string instead of ":"
return string.Join(":", sData);
}
但是如果你想自己构建结果(例如,如果你想学习如何去做),你可以使用字符串连接(oneString + anotherString
),甚至更好,使用{{3} }:
public String AddDelimiter(String[] sData)
{
StringBuilder result = new StringBuilder();
bool first = true;
foreach (string s in sData)
{
if (!first)
result.Append(':');
result.Append(s);
first = false;
}
return result.ToString();
}