C#拆分字符串
发布网友
发布时间:2022-05-07 04:47
我来回答
共7个回答
热心网友
时间:2022-05-07 06:17
字符串提供有拆分方法。string.Splitchar[] a),a为拆分的标识,在你的例子中"aa/bb/cc/dd".Split("/".toCharArray())的结果为包含有"aa","bb","cc","dd"的字符串数组。
String..::.Split 方法 (array<Char>[]()[])
更新:2007 年 11 月
返回的字符串数组包含此实例中的子字符串(由指定 Unicode 字符数组的元素分隔)。
命名空间: System
程序集: mscorlib(在 mscorlib.dll 中)
语法
Visual Basic(声明)
Public Function Split ( _
ParamArray separator As Char() _
) As String()
Visual Basic (用法)
Dim instance As String
Dim separator As Char()
Dim returnValue As String()
returnValue = instance.Split(separator)
C#
public string[] Split(
params char[] separator
)
Visual C++
public:
array<String^>^ Split(
... array<wchar_t>^ separator
)
J#
public String[] Split(
char[] separator
)
JScript
public function Split(
... separator : char[]
) : String[]
参数
separator
类型:array<System..::.Char>[]()[]
分隔此实例中子字符串的 Unicode 字符数组、不包含分隔符的空数组或 nullNothingnullptrnull 引用(在 Visual Basic 中为 Nothing)。
返回值
类型:array<System..::.String>[]()[]
一个数组,其元素包含此实例中的子字符串,这些子字符串由 separator 中的一个或多个字符分隔。有关更多信息,请参见“备注”部分。
备注
返回的数组元素中不包含分隔符字符。
如果此实例不包含 separator 中的任何字符,则返回的数组由包含此实例的单个元素组成。
如果 separator 参数为 nullNothingnullptrnull 引用(在 Visual Basic 中为 Nothing) 或不包含任何字符,则采用空白字符作为分隔符。下表列出了由 Split 方法识别的空白字符。(它们与由 String..::.Trim 方法识别的空白字符稍有不同。)
Unicode 名称
Unicode 码位
备注
CHARACTER TABULATION
U+0009
LINE FEED
U+000A
LINE TABULATION
U+000B
FORM FEED
U+000C
CARRIAGE RETURN
U+000D
SPACE
U+0020
NEXT LINE
U+0085
在 .NET Framework 2.0 版中引入。
NO-BREAK SPACE
U+00A0
OGHAM SPACE MARK
U+1680
EN QUAD
U+2000
EM QUAD
U+2001
EN SPACE
U+2002
EM SPACE
U+2003
THREE-PER-EM SPACE
U+2004
FOUR-PER-EM SPACE
U+2005
SIX-PER-EM SPACE
U+2006
FIGURE SPACE
U+2007
PUNCTUATION SPACE
U+2008
THIN SPACE
U+2009
HAIR SPACE
U+200A
ZERO WIDTH SPACE
U+200B
仅限 .NET Framework 1.0 和 1.1 版。
LINE SEPARATOR
U+2028
PARAGRAPH SEPARATOR
U+2029
IDEOGRAPHIC SPACE
U+3000
separator 的每一个元素都定义一个单独的分隔符字符。如果两个分隔符相邻,或者在此实例的开头或末尾找到分隔符,则相对应的数组元素包含 Empty。
例如:
字符串值
分隔符
返回的数组
"42, 12, 19"
new Char[] {',', ' '} (C#)
Char() = {","c, " "c}) (Visual Basic)
{"42", "", "12", "", "19"}
"42..12..19"
new Char[] {'.'} (C#)
Char() = {"."c} (Visual Basic)
{"42", "", "12", "", "19"}
"Banana"
new Char[] {'.'} (C#)
Char() = {"."c} (Visual Basic)
{"Banana"}
"Darb\nSmarba" (C#)
"Darb" & vbLf & "Smarba" (Visual Basic)
new Char[] {} (C#)
Char() = {} (Visual Basic)
{"Darb", "Smarba"}
"Darb\nSmarba" (C#)
"Darb" & vbLf & "Smarba" (Visual Basic)
null (C#)
Nothing (Visual Basic)
{"Darb", "Smarba"}
性能注意事项
Split 方法为返回的数组对象分配内存,同时还为每一个数组元素分配一个 String 对象。如果您的应用程序要求达到最佳性能,或者如果在您的应用程序中内存分配管理很关键,请考虑使用 IndexOf 或 IndexOfAny 方法,也可以选择使用 Compare 方法,在字符串中定位子字符串。
如果在分隔符字符处分割字符串,请使用 IndexOf 或 IndexOfAny 方法在字符串中定位分隔符字符。如果在分隔符字符串处分割字符串,请使用 IndexOf 或 IndexOfAny 方法定位分隔符字符串的第一个字符。然后使用 Compare 方法确定第一个字符后面的字符是否等于分隔符字符串的其余字符。
此外,如果在多个 Split 方法调用中使用相同的字符集拆分字符串,请考虑创建一个数组并在每个方法调用中都引用该数组。这可以极大地减少每个方法调用的额外系统开销。
示例
下面的示例演示如何通过将空白和标点符号视为分隔符来提取文本块中的各个单词。传递给 String..::.Split(array<Char>[]()[]) 方法的 separator 参数的字符数组包含空白字符和一些常用标点符号。
Visual Basic 复制代码
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})
For Each s As String In split
If s.Trim() <> "" Then
Console.WriteLine(s)
End If
Next s
End Sub 'Main
End Class 'SplitTest
' The example displays the following output to the console:
' This
' is
' a
' list
' of
' words
' with
' a
' bit
' of
' punctuation
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);
}
}
}
// The example displays the following output to the console:
// This
// is
// a
// list
// of
// words
// with
// a
// bit
// of
// punctuation
Visual C++ 复制代码
using namespace System;
using namespace System::Collections;
int main()
{
String^ words = "This is a list of words, with: a bit of punctuation.";
array<Char>^chars = {' ',',','->',':'};
array<String^>^split = words->Split( chars );
IEnumerator^ myEnum = split->GetEnumerator();
while ( myEnum->MoveNext() )
{
String^ s = safe_cast<String^>(myEnum->Current);
if ( !s->Trim()->Equals( "" ) )
Console::WriteLine( s );
}
}
// The example displays the following output to the console:
// This
// is
// a
// list
// of
// words
// with
// a
// bit
// of
// punctuation
J# 复制代码
import System.*;
public class SplitTest
{
public static void main(String[] args)
{
String words = "This is a list of words, with: a bit of punctuation.";
String split[] = words.Split(new char[] { ' ', ',', '.', ':' });
for (int iCtr = 0; iCtr < split.get_Length(); iCtr++) {
String s = (String)split.get_Item(iCtr);
if (!(s.Trim().Equals(""))) {
Console.WriteLine(s);
}
}
} //main
}
// The example displays the following output to the console:
// This
// is
// a
// list
// of
// words
// with
// a
// bit
// of
// punctuation
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();
// The example displays the following output to the console:
// This
// is
// a
// list
// of
// words
// with
// a
// bit
// of
// punctuation
平台
Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile for Smartphone, Windows Mobile for Pocket PC, Xbox 360
.NET Framework 和 .NET Compact Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求。
版本信息
.NET Framework
受以下版本支持:3.5、3.0、2.0、1.1、1.0
.NET Compact Framework
受以下版本支持:3.5、2.0、1.0
XNA Framework
受以下版本支持:2.0、1.0
热心网友
时间:2022-05-07 07:35
思路 就是把数组中的每个字符串都拆分开
然后 装到一个新的数组里面就行了
str1 = str[0] + "/" + str[1];
string[] strArr = str1.Split('/');
这样 strArr就成了{"aa","bb","cc","dd","ee","ff","gg","hh"};
用strArr[i]就能使用 相应的字符串了
热心网友
时间:2022-05-07 09:09
using System;
using System.Data;
using System.Collections.Generic;
class Test
{
static void Main()
{
string[] strvalues = new string[2];
strvalues[0] = "aa/bb/cc/dd";
strvalues[1] = "ee/ff/gg/hh";
string strnewvalues = string.Join("/", strvalues);
//我一般喜欢用控制台做实验 如果你要输出 将Console.WriteLine改成Response.Write
Console.WriteLine(strnewvalues.Replace("/", " "));
Console.ReadKey();
}
}
热心网友
时间:2022-05-07 11:01
string[] str = new string[2];
str[0] = "aa/bb/cc/dd";
str[1] = "ee/ff/gg/hh";
string ss = str[0] + "/" + str[1];
string[] FenKai = ss.Split('/');
for (int i = 0; i < FenKai.Length; i++)
{
Console.WriteLine(FenKai[i]);
}
热心网友
时间:2022-05-07 13:09
string a=str[0].Replace("/"," ");
string b=str[1].Replace("/"," ");
string c=a+b;
输出c就行了
热心网友
时间:2022-05-07 15:33
可试试String.Split 方法,具体用法请查阅MSDN
热心网友
时间:2022-05-07 18:15
string[] strArr = str1.Split('/'); 这个问题基本就解决了