C# :: Aufgabe #376

2 Lösungen Lösungen öffentlich

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ß

Lösungen:

vote_ok
von JKooP (18090 Punkte) - 22.04.2021 um 21:20 Uhr
NET 5.x; C# 9.x; VS-2019
Quellcode ausblenden 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();
vote_ok
von dson (640 Punkte) - 06.05.2021 um 16:00 Uhr
Quellcode ausblenden C#-Code
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;
                    }
                }
            }
        }
    }
}
1801177

Du scheinst einen AdBlocker zu nutzen. Ich würde mich freuen, wenn du ihn auf dieser Seite deaktivierst und dich davon überzeugst, dass die Werbung hier nicht störend ist.