Jump to content

string split c#

stefanmz
Go to solution Solved by stefanmz,
19 minutes ago, minibois said:

Can you post your code and show the output?

It should probably go like this:




string s = "text1=>text2=>text3=>";
string[] subs = s.Split('=', '>');

with subs now being a string array with these 'text1', etc. strings in it.

 

27 minutes ago, AbydosOne said:

Hacky answer: split on '=' and remove '>' from all resulting strings (or vice versa).

 

EDIT: potentially less hacky: Use a String ("xxx") instead of Character ('x') and see if that works.

So I tried both and it works only after adding this System.StringSplitOptions.RemoveEmptyEntries in the method for string split. I don't know what it does but it works fine so thanks

hey just a quick question can you use => as string splitter? For some reason in my task it says that the input has to be done like this. You know string.split('=>') it counts it as two symbols is there a button on the keyboard that types this symbol as one symbol? I also tried doing this string.split('=','>') but then when I type both => as a string splitter it breaks for example input=>input and so on

 

Link to comment
Share on other sites

Link to post
Share on other sites

23 minutes ago, stefanmz said:

hey just a quick question can you use => as string splitter? For some reason in my task it says that the input has to be done like this. You know string.split('=>') it counts it as two symbols is there a button on the keyboard that types this symbol as one symbol? I also tried doing this string.split('=','>') but then when I type both => as a string splitter it breaks for example input=>input and so on

 

Hacky answer: split on '=' and remove '>' from all resulting strings (or vice versa).

 

EDIT: potentially less hacky: Use a String ("xxx") instead of Character ('x') and see if that works.

Main System (Byarlant): Ryzen 7 5800X | Asus B550-Creator ProArt | EK 240mm Basic AIO | 16GB G.Skill DDR4 3200MT/s CAS-14 | XFX Speedster SWFT 210 RX 6600 | Samsung 990 PRO 2TB / Samsung 960 PRO 512GB / 4× Crucial MX500 2TB (RAID-0) | Corsair RM750X | Mellanox ConnectX-3 10G NIC | Inateck USB 3.0 Card | Hyte Y60 Case | Dell U3415W Monitor | Keychron K4 Brown (white backlight)

 

Laptop (Narrative): Lenovo Flex 5 81X20005US | Ryzen 5 4500U | 16GB RAM (soldered) | Vega 6 Graphics | SKHynix P31 1TB NVMe SSD | Intel AX200 Wifi (all-around awesome machine)

 

Proxmox Server (Veda): Ryzen 7 3800XT | AsRock Rack X470D4U | Corsair H80i v2 | 64GB Micron DDR4 ECC 3200MT/s | 4x 10TB WD Whites / 4x 14TB Seagate Exos / 2× Samsung PM963a 960GB SSD | Seasonic Prime Fanless 500W | Intel X540-T2 10G NIC | LSI 9207-8i HBA | Fractal Design Node 804 Case (side panels swapped to show off drives) | VMs: TrueNAS Scale; Ubuntu Server (PiHole/PiVPN/NGINX?); Windows 10 Pro; Ubuntu Server (Apache/MySQL)


Media Center/Video Capture (Jesta Cannon): Ryzen 5 1600X | ASRock B450M Pro4 R2.0 | Noctua NH-L12S | 16GB Crucial DDR4 3200MT/s CAS-22 | EVGA GTX750Ti SC | UMIS NVMe SSD 256GB / Seagate 1.5TB HDD | Corsair CX450M | Viewcast Osprey 260e Video Capture | Mellanox ConnectX-2 10G NIC | LG UH12NS30 BD-ROM | Silverstone Sugo SG-11 Case | Sony XR65A80K

 

Camera: Sony ɑ7II w/ Meike Grip | Sony SEL24240 | Samyang 35mm ƒ/2.8 | Sony SEL50F18F | Sony SEL2870 (kit lens) | PNY Elite Perfomance 512GB SDXC card

 

Network:

Spoiler
                           ┌─────────────── Office/Rack ────────────────────────────────────────────────────────────────────────────┐
Google Fiber Webpass ────── UniFi Security Gateway ─── UniFi Switch 8-60W ─┬─ UniFi Switch Flex XG ═╦═ Veda (Proxmox Virtual Switch)
(500Mbps↑/500Mbps↓)                             UniFi CloudKey Gen2 (PoE) ─┴─ Veda (IPMI)           ╠═ Veda-NAS (HW Passthrough NIC)
╔═══════════════════════════════════════════════════════════════════════════════════════════════════╩═ Narrative (Asus USB 2.5G NIC)
║ ┌────── Closet ──────┐   ┌─────────────── Bedroom ──────────────────────────────────────────────────────┐
╚═ UniFi Switch Flex XG ═╤═ UniFi Switch Flex XG ═╦═ Byarlant
   (PoE)                 │                        ╠═ Narrative (Cable Matters USB-PD 2.5G Ethernet Dongle)
                         │                        ╚═ Jesta Cannon*
                         │ ┌─────────────── Media Center ──────────────────────────────────┐
Notes:                   └─ UniFi Switch 8 ─────────┬─ UniFi Access Point nanoHD (PoE)
═══ is Multi-Gigabit                                ├─ Sony Playstation 4 
─── is Gigabit                                      ├─ Pioneer VSX-S520
* = cable passed to Bedroom from Media Center       ├─ Sony XR65A80K (Google TV)
** = cable passed from Media Center to Bedroom      └─ Work Laptop** (Startech USB-PD Dock)

 

Retired/Other:

Spoiler

Laptop (Rozen-Zulu): Sony VAIO VPCF13WFX | Core i7-740QM | 8GB Patriot DDR3 | GT 425M | Samsung 850EVO 250GB SSD | Blu-ray Drive | Intel 7260 Wifi (lived a good life, retired with honor)

Testbed/Old Desktop (Kshatriya): Xeon X5470 @ 4.0GHz | ZALMAN CNPS9500 | Gigabyte EP45-UD3L | 8GB Nanya DDR2 400MHz | XFX HD6870 DD | OCZ Vertex 3 Max-IOPS 120GB | Corsair CX430M | HooToo USB 3.0 PCIe Card | Osprey 230 Video Capture | NZXT H230 Case

TrueNAS Server (La Vie en Rose): Xeon E3-1241v3 | Supermicro X10SLL-F | Corsair H60 | 32GB Micron DDR3L ECC 1600MHz | 1x Kingston 16GB SSD / Crucial MX500 500GB

Link to comment
Share on other sites

Link to post
Share on other sites

I think this is what you are looking for: https://docs.microsoft.com/en-us/dotnet/api/system.string.split?view=net-5.0#System_String_Split_System_Char___

 

So if I am understanding you correctly, you have a string like this:

text1=>text2=>text3=>

And you need to extract text1, text2 and text3?

"We're all in this together, might as well be friends" Tom, Toonami.

 

mini eLiXiVy: my open source 65% mechanical PCB, a build log, PCB anatomy and discussing open source licenses: https://linustechtips.com/topic/1366493-elixivy-a-65-mechanical-keyboard-build-log-pcb-anatomy-and-how-i-open-sourced-this-project/

 

mini_cardboard: a 4% keyboard build log and how keyboards workhttps://linustechtips.com/topic/1328547-mini_cardboard-a-4-keyboard-build-log-and-how-keyboards-work/

Link to comment
Share on other sites

Link to post
Share on other sites

No I was acttually wondering

1 minute ago, minibois said:

I think this is what you are looking for: https://docs.microsoft.com/en-us/dotnet/api/system.string.split?view=net-5.0#System_String_Split_System_Char___

 

So if I am understanding you correctly, you have a string like this:


text1=>text2=>text3=>

And you need to extract text1, text2 and text3?

yes but I checked this page it doesn't work if I put them as tow symbols = and >

Link to comment
Share on other sites

Link to post
Share on other sites

Just now, stefanmz said:

No I was acttually wondering

yes but I checked this page it doesn't work if I put them as tow symbols = and >

Can you post your code and show the output?

It should probably go like this:

string s = "text1=>text2=>text3=>";
string[] subs = s.Split('=', '>');

with subs now being a string array with these 'text1', etc. strings in it.

"We're all in this together, might as well be friends" Tom, Toonami.

 

mini eLiXiVy: my open source 65% mechanical PCB, a build log, PCB anatomy and discussing open source licenses: https://linustechtips.com/topic/1366493-elixivy-a-65-mechanical-keyboard-build-log-pcb-anatomy-and-how-i-open-sourced-this-project/

 

mini_cardboard: a 4% keyboard build log and how keyboards workhttps://linustechtips.com/topic/1328547-mini_cardboard-a-4-keyboard-build-log-and-how-keyboards-work/

Link to comment
Share on other sites

Link to post
Share on other sites

19 minutes ago, minibois said:

Can you post your code and show the output?

It should probably go like this:




string s = "text1=>text2=>text3=>";
string[] subs = s.Split('=', '>');

with subs now being a string array with these 'text1', etc. strings in it.

 

27 minutes ago, AbydosOne said:

Hacky answer: split on '=' and remove '>' from all resulting strings (or vice versa).

 

EDIT: potentially less hacky: Use a String ("xxx") instead of Character ('x') and see if that works.

So I tried both and it works only after adding this System.StringSplitOptions.RemoveEmptyEntries in the method for string split. I don't know what it does but it works fine so thanks

Link to comment
Share on other sites

Link to post
Share on other sites

2 hours ago, stefanmz said:

 

So I tried both and it works only after adding this System.StringSplitOptions.RemoveEmptyEntries in the method for string split. I don't know what it does but it works fine so thanks

What's happening if you don't do that is that it's treating the 0-character gap in between the = > as a string:

 

a=>b
'a', '=', '', '>', 'b'

 

so you get a 3-element array instead of 2.

Link to comment
Share on other sites

Link to post
Share on other sites

13 hours ago, stefanmz said:

hey just a quick question can you use => as string splitter?

Yes. Read the documentation for string.Split(). Two overloads of this method take a string[] as an argument.

 

var text = "Hello=>here's=>some=>text=>and some symbols: 2=2, 5>4";
var delimiters = new string[] { "=>" };

string[] splittedStrings = text.Split(delimiters, StringSplitOptions.None);

foreach (var part in splittedStrings) Console.WriteLine(part);

// Output:
// Hello
// here's
// some
// text
// and some symbols: 2=2, 5>4

 

 

The suggestions above to split on chars '=' and '>' are not acceptable, because, well, the task is to split on the string "=>", not on chars '=' and '>'.

var text = "Hello=>here's=>some=>text=>and some symbols: 2=2, 5>4";
var separators = new char[] { '=', '>' };

string[] splittedStrings = text.Split(separators, StringSplitOptions.RemoveEmptyEntries);

foreach (var part in splittedStrings) Console.WriteLine(part);

// Output:
// Hello
// here's
// some
// text
// and some symbols: 2
// 2, 5
// 4

 

Link to comment
Share on other sites

Link to post
Share on other sites

On 4/27/2021 at 3:47 AM, Grabhanem said:

What's happening if you don't do that is that it's treating the 0-character gap in between the = > as a string:

 

a=>b
'a', '=', '', '>', 'b'

 

so you get a 3-element array instead of 2.

Oh I understand thanks for the info!

Link to comment
Share on other sites

Link to post
Share on other sites

16 hours ago, Sakuriru said:

I'm not sure why you would want to split on => since that's the lambda operator. That's weird.

Because my task from my teacher said input to be done like this. I don't know if he insists on using this or it's just his choice and we can do whatever we want but just in case. Honestly I would have used , but I decided to do it exactly as shown in his example where it was string1=>string2 and his strings were separated by this

Link to comment
Share on other sites

Link to post
Share on other sites

2 hours ago, OrionFOTL said:

No acknowledgement of my answer?

Yeah,thanks,I already did that and it worked! 

Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×