簡體   English   中英

c#WPF中的文字字符過多

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM