Buch Cover Buch Cover Buch Cover Buch Cover

Web-Code: - Webcode Help

Liste von Zeichen in einem String (Zeichenketten)

Schreibe eine Funktion, die einen String entgegen nimmt und die Anzahl der einzelnen Zeichen in Form einer Liste oder eines Arrays zurück gibt.

z.B. Hullahup

Ergebnisliste/Array {'u': 2, 'p': 2, 'l': 2, 'h': 2, 'a': 1})

1 Kommentare

Bitte melde dich an um einen Kommentar abzugeben

Kommentare (1)

jensen 11. August 2015 12:04   reply report
Die Ergebnisliste im Beispiel ist falsch. Das Wort hat nur 8 Buchstaben und nur ein p.

19 Lösung(en)

import collections
def zeichen_im_string(teststring):
    print (collections.Counter(teststring))
zeichen_im_string("hullahupp")

                

Lösung von: Py Thon ()

package counter;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;

public class Counter {
	
	public static void main(String args[]) {
			System.out.print("Geben Sie etwas ein: ");
			String userInput = readUserInput();
			System.out.println("Ergebnis: " + count(userInput));
	}
	
	private static String readUserInput() {
		BufferedReader inputStream = null;
		String userInput;
		try {
			inputStream = new BufferedReader(new InputStreamReader(System.in));
			userInput = inputStream.readLine();
		} catch (IOException e) {
			System.out.println("Ihre Eingabe konnte nicht vearbeitet werden!");
			return null;
		}
		return userInput;
	}
	
	private static String count(String text) {
		String result = "";
		HashMap<String, Integer> hashmap = new HashMap<String, Integer>();
		
		for(int i = 0; i < text.length(); i++) {
			if(!hashmap.containsKey(String.valueOf(text.charAt(i)))) {
				hashmap.put(String.valueOf(text.charAt(i)), 1);
			} else {
				Integer value = hashmap.get(String.valueOf(text.charAt(i)));
				value++;
				hashmap.put(String.valueOf(text.charAt(i)), value);
			}
		}
		
		result = result.concat("{ ");
		for(String s : hashmap.keySet()) {
			result = result.concat("(");
			result = result.concat(s);
			result = result.concat("=");
			result = result.concat(String.valueOf(hashmap.get(s)));
			result = result.concat(") ");
		}
		result = result.concat("}");
		return result;
	}
}

                

Lösung von: Christian :) (Hochschule Merseburg)

#include <stdio.h>

int main() {
    char string[10000];
    char *ptr;
    int ascii[256];
    int i;

    //Read user input
    printf("Geben Sie etwas ein: ");
    gets(string);

    //Every element of ascii code has counter value, first 0
    for(i = 0; i < 256; i++) {
        ascii[i] = 0;
    }

    //Count
    for(ptr = string; *ptr != '\0'; ptr++) {
        ascii[(int)*ptr]++;
    }

    //Output
    for(i = 0; i < 256; i++) {
        if(ascii[i] != 0) {
            printf("%c = %i\n", (char)i, ascii[i]);
        }
    }

    return 0;
}

                

Lösung von: Christian :) (Hochschule Merseburg)

using System;
using System.Collections.Generic;
using System.Linq;

namespace Liste_von_Zeichen_in_String {
	class Program {

		//Aufgabe
		public static Dictionary<char, int> CharCounter(string inputString) {

			Dictionary<char, int> dictionaryToReturn = new Dictionary<char, int>();
			char[] charArray = inputString.ToLower().ToCharArray();

			foreach (char singleChar in charArray)
				if (dictionaryToReturn.ContainsKey(singleChar))
					dictionaryToReturn[singleChar]++;
				else
					dictionaryToReturn[singleChar] = 1;
			
			return dictionaryToReturn;
		}

		//Beispielausgabe
		static void Main() {
			foreach (KeyValuePair<char, int> countedChar in CharCounter(Console.ReadLine()).OrderBy(x => x.Key))
				Console.WriteLine("{0}: {1}", countedChar.Key.ToString().ToUpper(), countedChar.Value);
			Console.ReadKey(true);
		}
	}
}
                

Lösung von: Marcel Kapma ()

function countLetters(str) {
   var chars = [];
   str.replace(/./g, function(i) {
      chars[i] = (isNaN(chars[i]) ? 1 : chars[i] + 1);
   });
   return chars;
}

console.table(countLetters(prompt("Zeichenkette:")));
                

Lösung von: Lisa Salander (Heidi-Klum-Gymnasium Bottrop)

// Vira
namespace ProgrammierAufgaben
{
    using System;
    using System.Collections.Generic;

    class Program
    {
        static void Main(string[] args)
        {
            foreach (CharInfo item in GetCharInfo("Hullahup"))
            {
                Console.WriteLine(item.Char + ":  " + item.Count);
            }
            Console.ReadKey(true);
        }

        private static List<CharInfo>GetCharInfo(string Text)
        {
            List<CharInfo> ToRet = new List<CharInfo>();

            foreach (char item in Text)
            {
                if (ToRet.Count != 0)
                {
                    bool exists = false;
                    foreach (CharInfo search in ToRet)
                    {
                        if(search.Char==item)
                        {
                            search.Count++;
                            exists = true;
                            break;
                        }
                    }
                    if(!exists)
                    {
                        ToRet.Add(new CharInfo(item));
                    }
                }
                else
                {
                    ToRet.Add(new CharInfo(item));
                }
            }

            return ToRet;
        }
    }

    public class CharInfo
    {
        public CharInfo(char Char)
        {
            this.Char = Char;
            this.Count = 1;
        }
        public char Char { get; private set; }
        public int Count { get; set; }
    }
}

                

Lösung von: Thomas Rührig (Htl-Donaustadt (bzw ÖZBF nominiert - TU-Wien))

import java.util.HashMap;
import java.util.Scanner;

public class Main
{
	HashMap<Character, Integer> chars = new HashMap<Character, Integer>();
	
	void run(String input)
	{
		for(int i = 0;i < input.length();i++)
		{
			if(chars.containsKey(input.charAt(i)))
			{
				chars.put(input.charAt(i), chars.get(input.charAt(i))+1);
			}
			else
			{
				chars.put(input.charAt(i), 1);
			}
		}		
		
		System.out.printf("%n%s", chars.toString());
	}
	
	public static void main(String[] args)
	{
		Main start = new Main();
		Scanner in = new Scanner(System.in);
		String input;
		
		System.out.printf("Enter a word: ");
		input = in.nextLine();
		in.close();
		start.run(input);
	}
}
                

Lösung von: Andy Großhennig (Bundeswehr)

using System;
using System.Linq;
namespace Liste_von_Zeichen_in_String
{
    /*
     * Autor: Hade Mohamed | HTL Bulme Graz
     * Contact: proxfreak@gmail.com
     */

    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Gib das Wort ein:");
            string Wort =  Console.ReadLine().ToLower();
            string Liste = "{";
            for (int i = 0; i < Wort.Length; i++)
            {
                char Zeichen = Wort[i];
                int Vorkommen = Wort.Split(Zeichen).Length - 1;
                if(!Liste.Contains(Zeichen))
                    Liste += "'" + Zeichen + "' : " + Vorkommen + ", ";
            }
            Liste = Liste.Remove(Liste.Length - 2) + "}"; // Form nach der Beispiels-Norm gerichtet
            Console.WriteLine(Liste);
            Console.ReadLine();
        }
    }
}

                

Lösung von: Name nicht veröffentlicht

println userInput.toList().countBy { it }

//User -Eingabe
static def getUserInput() {
    System.in.withReader {
        print "Eingabe: "
        return it.readLine().toLowerCase()
    }
}

                

Lösung von: Max Jando (Hochschule Mannheim)

        public static IList<string> SplittenUndZaehlen(string input)
        {
            var zaehlerlist = new List<string>();

            foreach (var item in input.ToLower().GroupBy(x => x))
                zaehlerlist.Add("'" + item.Key + "':" + item.Count());

            return zaehlerlist;
        }
                

Lösung von: No Name (Nürnberg)

Module Module1
    Sub Main()
        Dim input As String
        Dim arr() As Char
        Dim cArr As New List(Of String)

        Console.WriteLine("Geben Sie einen String ein: ")
        input = Console.ReadLine()
        arr = input.ToLower().ToArray()

        For Each el In arr
            If Not cArr.Contains(el) Then
                cArr.Add(el)
            End If
        Next

        Console.Write("{")
        For Each el As Char In cArr
            Console.Write("'" & el & "': " & Array.FindAll(arr, Function(x) x = el).Count & ", ")
        Next
        Console.Write("}")
        Console.ReadLine()
    End Sub
End Module
                

Lösung von: Elias Zech (Optics Balzers)

<?php

$zeichen = "Hulahup";

$zeichen = strtolower($zeichen);

$arr= str_split($zeichen);

$arr = array_count_values($arr);

rsort($arr);

?>
                

Lösung von: Maik Scheiermann (Powercloud GmbH)

// LISTE VON ZEICHEN IN EINEM STRING 

function countLetters (string) { 
	var alphabet = {};	
	for (var i= 0; i<string.length; i++) {
		if (alphabet[string[i].toLowerCase()] !== undefined)
			alphabet[string[i].toLowerCase()]++;
		else 
			alphabet[string[i].toLowerCase()] = 1;
	}
	return alphabet;
}

console.log(countLetters(prompt("Zeichenkette: ")));
                

Lösung von: -- -- ()

function letterFrequency(input) { 
    const outObj = {}
    input.split("").forEach((char) => {
        outObj[char] ? outObj[char]++ : outObj[char] = 1;
    })
    return outObj;
}
                

Lösung von: Name nicht veröffentlicht

// NET Core 3.x; C# 8.x

using System;
using System.Collections.Generic;
using System.Linq;

namespace CS_Aufgabe_Liste_Zeichen
{
    class Program
    {
        static void Main(string[] args)
        {
            const string t = "DasIstEinTestString";

            // mit Aufruf der Funktion
            Console.WriteLine(string.Join(", ", GetDic(t).Select(x => $"'{ x.Key }': { x.Value }")));

            // oder Direktausgabe
            Console.WriteLine(string.Join(", ", t.ToLower().ToCharArray().GroupBy(x => x).Select(x => new { k = x.Key, c = x.Count() }).Select(x => $"'{ x.k }': { x.c }")));

            // oder Dictionary- Ausgabe
            GetDic(t).ToList().ForEach(x => Console.WriteLine(x));
        }
        static Dictionary<char, int> GetDic(string s) => s.ToLower().ToCharArray().GroupBy(x => x).ToDictionary(k => k.Key, c => c.Count());
    }
}
                

Lösung von: Jens Kelm (@JKooP)

// C++ 14 | VS-2022

#include <iostream>
#include <map>
#include <algorithm>

std::map<int, int> get_grouped_string(std::string str) {
    std::transform(str.begin(), str.end(), str.begin(), ::tolower);
    std::map<int, int> m;
    for (const auto& i : str)
        if (m.count(i)) m[i]++;
        else m.emplace(i, 1);
    return m;
}

int main() {
    std::string str{ "Hulahoop" };
    for (const auto& i : get_grouped_string(str)) {
        std::cout << "'" << (char)i.first << "': " << i.second << std::endl;
    }
}


                

Lösung von: Jens Kelm (@JKooP)

' VBA

Function GetArray(ByVal s$)
    Dim arr(25)
    s$ = LCase(s)
    For i% = 1 To Len(s)
        t% = Asc(Mid(s, i, 1)) - 97
        arr(t) = arr(t) + 1
    Next
    GetArray = arr
End Function

Sub PrintArray(arr)
    For i% = LBound(arr) To UBound(arr)
        If arr(i) > 0 Then
            Debug.Print Chr(i + 97), arr(i)
        End If
    Next
End Sub

Sub Main()
    PrintArray GetArray("Hulahoop")
End Sub
                

Lösung von: Jens Kelm (@JKooP)

def anzahl(zeichen):
    dictionary = {}
    for i in range(len(zeichen)):
        char = zeichen[i]
        anzahl=zeichen.count(char)
        dictionary[char]=anzahl
    print(dict(sorted(dictionary.items(), key=lambda item:item[1], reverse=True)))
anzahl("Der Beispielstring")
                

Lösung von: Name nicht veröffentlicht

// C++20 | VS-2022

#include <iostream>
#include <vector>
#include <ranges>
#include <map>
#include <format>

inline static const auto get_grouped_chars(const std::string& str_) {
	std::map<char, size_t>map{};
	for (const auto& c : std::views::transform(str_, ::tolower))
		if (map.count(c)) map.at(c)++;
		else map.emplace(c, 1);
	return map;
}

inline static constexpr auto print(const auto& map_) {
	for (const auto& [fst, sec] : map_)
		std::cout << std::format("'{}': {}, ", fst, sec);
}

int main() {
	std::string str{ "HulaHoop" };
	print(get_grouped_chars(str));
}

// 'a': 1, 'h': 2, 'l': 1, 'o': 2, 'p': 1, 'u': 1,
                

Lösung von: Jens Kelm (@JKooP)

Verifikation/Checksumme:

String: "Der Beispielstring"

Counter({'i': 3, 'e': 3, 'r': 2, 's': 2, 't': 1, 'l': 1, 'p': 1, 'n': 1, 'g': 1, 'B': 1, 'D': 1, ' ': 1})

 

String: "ABCDEFG"

Counter({'A': 1, 'G': 1, 'D': 1, 'C': 1, 'E': 1, 'F': 1, 'B': 1})

 

String: "12345"

Counter({'4': 1, '5': 1, '2': 1, '1': 1, '3': 1})

Aktionen

Bewertung

Durchschnittliche Bewertung:

Eigene Bewertung:
Bitte zuerst anmelden

Meta

Zeit: 0.25
Schwierigkeit: Leicht
Webcode: orwc-nq7i
Autor: ()

Download PDF

Download ZIP

Zu Aufgabenblatt hinzufügen