有关 string.Split() 求救.

恶猫 2004-07-11 01:54:35
ASP中代码如下:

a="aaa||awr||ok3"
b=split(a,"||)
response.write b(1) & b(2) & b(0)


在C#中如何做到????????????????????????????????

...全文
711 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
hfcc999 2004-07-11
  • 打赏
  • 举报
回复
用正则表达式可以
恶猫 2004-07-11
  • 打赏
  • 举报
回复
哎.

郁闷.

自己更改参数解决了.

三楼的朋友说的,虽然可以,但是我嫌那个太麻烦了,我是想省些占用的资源,

唉,,,,,,,,,,,,,,
triout 2004-07-11
  • 打赏
  • 举报
回复
ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.2052/cpref/html/frlrfSystemStringClassSplitTopic1.htm
triout 2004-07-11
  • 打赏
  • 举报
回复
标识此实例中的子字符串(它们由数组中指定的一个或多个字符进行分隔),然后将这些子字符串放入一个 String 数组中。

[Visual Basic]
Overloads Public Function Split( _
ByVal ParamArray separator() As Char _
) As String()

[C#]
public string[] Split(
params char[] separator
);

[C++]
public: String* Split(
__wchar_t separator __gc[]
) __gc[];

[JScript]
public function Split(
separator : Char[]
) : String[];

参数
separator
分隔此实例中子字符串的 Unicode 字符数组、不包含分隔符的空数组或空引用(Visual Basic 中为 Nothing)。
返回值
如果此实例不包含 separator 中的任何字符,则为由包含此实例的单个元素组成的数组。

- 或 -

如果此实例由 separator 中的一个或多个字符分隔,则为子字符串数组。

- 或 -

如果出现空白字符,而且 separator 为空引用(Visual Basic 中为 Nothing)或不包含分隔符,则返回此实例中由空白字符分隔的子字符串数组。

对于其中有两个相邻分隔符的任何子字符串,或者在此实例的开头或结尾找到分隔符,则返回 Empty。

分隔符不包括在子字符串中。

备注
例如:

输入 分隔符 输出
"42, 12, 19" new Char[] {',', ' '} {"42", "", "12", "", "19"}
"42..12..19" new Char[] {'.'} {"42", "", "12", "", "19"}
"Banana" new Char[] {'.'} {"Banana"}
"Darb\nSmarba" new Char[] {} {"Darb", "Smarba"}
"Darb\nSmarba" 空 {"Darb", "Smarba"}

示例
下面的代码示例说明如何使用 Split 方法标记字符串。

[Visual Basic]
Imports System

Public Class SplitTest

Public Shared Sub Main()
Dim words As String = "this is a list of words, with: a bit of punctuation."
Dim split As String() = words.Split(New [Char]() {" "c, ","c, "."c, ":"c})

Dim s As String
For Each s In split
If s.Trim() <> "" Then

Console.WriteLine(s)
End If
Next s
End Sub 'Main
End Class 'SplitTest

[C#]
using System;

public class SplitTest {
public static void Main() {

string words = "this is a list of words, with: a bit of punctuation.";

string [] split = words.Split(new Char [] {' ', ',', '.', ':'});

foreach (string s in split) {

if (s.Trim() != "")
Console.WriteLine(s);
}
}
}

[C++]
#using <mscorlib.dll>

using namespace System;
using namespace System::Collections;

void main()
{
String* words = S"this is a list of words, with: a bit of punctuation.";
Char chars[] = {' ', ', ', '->', ':'};
String* split[] = words->Split(chars);

IEnumerator* myEnum = split->GetEnumerator();
while (myEnum->MoveNext()) {
String* s = __try_cast<String*>(myEnum->Current);
if (!s->Trim()->Equals(S""))
Console::WriteLine(s);
}
}

[JScript]
import System;

public class SplitTest {
public static function Main() : void {

var words : String = "this is a list of words, with: a bit of punctuation.";
var separators : char[] = [' ', ',', '.', ':'];
var split : String [] = words.Split(separators);

for (var i : int in split) {
var s : String = split[i];
if (s.Trim() != "")
Console.WriteLine(s);
}
}
}
SplitTest.Main();
triout 2004-07-11
  • 打赏
  • 举报
回复
也类似,不过,在C#中是使用字符来分解的,所以,如果你用"||"肯定不行,要用一个字符数组,哪怕只有一个元素,而且是'|',这样就会出现问题,如果你的字符串中只能用"||"来分解,而单个的"|"是有效的内容就不行了。

遇到这样的问题,我也没有很好的解决方案,通常是通过IndexOf和Substring配合使用来实现:

string [] Split(string strSrc,string strSplit)
{
ArrayList strArr=new ArrayList();
string strTmp=strSrc;
int iSplitLen=strSplit.Length;
int iIdx=strTmp.IndexOf(strSplit);
while(iIdx>=0)
{
strArr.Add(strTmp.Substring(0,iIdx);
strTmp=strTmp.Substring(iIdx+iSplitLen);
iIdx=strTmp.Indexof(strSplit);
}
strArr.Add(strTmp);
return strArr.ToArray(typeof(string));
}
恶猫 2004-07-11
  • 打赏
  • 举报
回复
TTTTTTT

111,097

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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