Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Too many Literal Characters in c# WPF

Tags:

c#

.net

split

wpf

String value in my code is like:

string abc = "Page1: This is my new Page1 -------- Page2: This is my new Page 2
-------- Page3: This is my new Page3 -------- "

I want to split it like:

Page1

This is my new Page1

Page2

This is my new Page 2

Page3

This is my new Page3

I wrote this code but it says that 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]);
   }
like image 338
user2835256 Avatar asked Nov 21 '25 16:11

user2835256


2 Answers

Your error is that line;

char[] delimiters = new char[] { '    --------     ' };

Obviusly, -------- is not a single character. It is a string. Use string array instead of a char array like;

string[] delimiters = new string[] { "    --------     " };

Full example;

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);
}

Output will be;

Page1: This is my new Page1
Page2: This is my new Page 2
Page3: This is my new Page3

Here a demonstration.

If you want to output like;

Page1
This is my new Page1
Page2
This is my new Page 2
Page3
This is my new Page3 

You just need to add : in your string array to split part. Like;

string[] delimiters = new string[] { "     --------     ", ":"};

and how to get page1 page 2 ?

You can get them like;

Console.WriteLine(delimiters[0]); //Prints Page1
Console.WriteLine(delimiters[2]); //Prints Page2
like image 54
Soner Gönül Avatar answered Nov 23 '25 04:11

Soner Gönül


The issue is that you need to use the string[] overload:

string[] delimiters = new string[] { "    --------     " };

A char is defined as a single character. So, when you do this ' -------- ' it can't build that. That's not a char, that's a string. And quite frankly, that's what you're looking for.

So, by changing it from a char[] to a string[] you'll use the right overload.

like image 27
Mike Perrenoud Avatar answered Nov 23 '25 06:11

Mike Perrenoud