[英]Too many Literal Characters in c# WPF
我的代碼中的字符串值如下:
string abc = "Page1: This is my new Page1 -------- Page2: This is my new Page 2
-------- Page3: This is my new Page3 -------- "
我想把它拆分成:
第1頁
這是我的新Page1
第2頁
這是我的新篇章
第3頁
這是我的新Page3
我寫了這段代碼,但它說There are two many Literals
string value = "Page1: This is my new Page1 -------- Page2: This is my new Page 2 -------- Page3: This is my new Page3 -------- ";
char[] delimiters = new char[] { ' -------- ' };
string[] parts = value.Split(delimiters, StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < parts.Length; i++)
{
MesaageBox.Show(parts[i]);
}
parts = value.Split(new string[] { "\r\n" }, StringSplitOptions.None);
for (int i = 0; i < parts.Length; i++)
{
MesaageBox.Show(parts[i]);
}
你的錯誤是那條線;
char[] delimiters = new char[] { ' -------- ' };
顯而易見, --------
不是一個單一的角色。 這是一個字符串 。 使用string
數組而不是char
數組;
string[] delimiters = new string[] { " -------- " };
完整的例子;
string value = "Page1: This is my new Page1 -------- Page2: This is my new Page 2 -------- Page3: This is my new Page3 -------- ";
string[] delimiters = new string[] { " -------- " };
string[] parts = value.Split(delimiters, StringSplitOptions.RemoveEmptyEntries);
foreach (var item in parts)
{
Console.WriteLine(item);
}
輸出將是;
Page1: This is my new Page1
Page2: This is my new Page 2
Page3: This is my new Page3
這是一個demonstration
。
如果你想輸出像;
Page1
This is my new Page1
Page2
This is my new Page 2
Page3
This is my new Page3
您只需要在字符串數組中添加:
以分割部分。 喜歡;
string[] delimiters = new string[] { " -------- ", ":"};
以及如何獲得第1頁第2頁?
你可以得到它們;
Console.WriteLine(delimiters[0]); //Prints Page1
Console.WriteLine(delimiters[2]); //Prints Page2
問題是你需要使用string[]
重載:
string[] delimiters = new string[] { " -------- " };
char
被定義為單個字符。 所以,當你這樣做' -------- '
時就無法構建它。 這不是一個char
,這是一個string
。 坦率地說,這就是你要找的東西。
因此,通過將它從char[]
更改為string[]
您將使用正確的重載。
僅供記錄。 這是使用正則表達式的另一個選項:
string value = "Page1: This is my new Page1 -------- Page2: This is my new Page 2 -------- Page3: This is my new Page3 -------- ";
string[] delimiters = new string[] { " -------- " };
string[] parts = Regex.Split(value, @"(?<=Page\d+): |\s+-{8}\s+");
foreach (var item in parts)
{
Console.WriteLine(item);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.