C# :: Aufgabe #376
2 Lösungen
Unikat- Liste aus zwei Zeichenketten/Sätzen
Anfänger - C#
von JKooP
- 02.04.2021 um 18:13 Uhr
Gegeben sind zwei Zeichenketten (a, b) bestehend aus Kleinbuchstaben und Leerzeichen.
Es sollen die Wörter in ein neues String- Array überführt werden,
die genau einmal in beiden Zeichenketten vorkommen (Unikate).
Beispiel 1:
a = „der pfannkuchen schmeckt süß“
b = „der pfannkuchen schmeckt salzig“
Lösung: { „süß“, „salzig“ }
Beispiel 2:
a = „apfel apfel“
b = „banane“
Lösung: { „banane“ }
Beispiel 3:
a = „der pfannkuchen schmeckt“
b = „der pfannkuchen schmeckt“
Lösung: { }
Erstelle eine Methode/Funktion, die solch ein String- Array zurückgibt.
Viel Spaß
Es sollen die Wörter in ein neues String- Array überführt werden,
die genau einmal in beiden Zeichenketten vorkommen (Unikate).
Beispiel 1:
a = „der pfannkuchen schmeckt süß“
b = „der pfannkuchen schmeckt salzig“
Lösung: { „süß“, „salzig“ }
Beispiel 2:
a = „apfel apfel“
b = „banane“
Lösung: { „banane“ }
Beispiel 3:
a = „der pfannkuchen schmeckt“
b = „der pfannkuchen schmeckt“
Lösung: { }
Erstelle eine Methode/Funktion, die solch ein String- Array zurückgibt.
Viel Spaß
Lösungen:
NET 5.x; C# 9.x; VS-2019
C#-Code
using System;
using System.Collections.Generic;
using System.Linq;
var lst = new List<(string a, string b)> {
("der pfannkuchen schmeckt süß", "der pfannkuchen schmeckt salzig"),
("apfel apfel", "banane"),
("der pfannkuchen schmeckt", "der pfannkuchen schmeckt") };
lst.ForEach(x => Console.WriteLine(string.Join(", ", UniqueWords(x.a, x.b))));
static string[] UniqueWords(string a, string b) =>
a.Split(" ").Concat(b.Split(" ")).GroupBy(x => x).Where(x => x.Count() == 1).Select(x => new string(x.Key)).ToArray();
using System;
namespace satz_wort_unterscheidung
{
class Program
{
static void Main(string[] args)
{
string a = "der pfannkuchen schmeckt";
string b = "der pfannkuchen schmeckt";
int hauefigkeit = 0;
string[] satz1 = a.Split(' ');
string[] satz2 = b.Split(' ');
foreach (var item in satz1)
{
if (!b.Contains(item))
{
foreach (var item1 in satz1)
{
if (item == item1)
{
hauefigkeit++;
}
}
if (hauefigkeit == 1)
{
Console.WriteLine(item);
hauefigkeit = 0;
}
else
{
hauefigkeit = 0;
}
}
}
foreach (var item in satz2)
{
if (!a.Contains(item))
{
foreach (var item1 in satz2)
{
if (item == item1)
{
hauefigkeit++;
}
}
if (hauefigkeit == 1)
{
Console.WriteLine(item);
hauefigkeit = 0;
}
else
{
hauefigkeit = 0;
}
}
}
}
}
}
