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})
0 Kommentare
20 Lösung(en)
- python
- java
- c
- csharp
- javascript
- csharp
- java
- csharp
- groovy
- csharp
- vb
- php
- javascript
- javascript
- csharp
- cpp
- vb
- python
- cpp
- c
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)
#include <stdio.h>
#define MAX_ELEMENTS 256
#define MAX_LENGTH 1000
size_t main() {
char buffer[MAX_LENGTH] = {};
size_t arr[MAX_ELEMENTS] = {};
printf("Bitte Text eingeben: ");
fgets(buffer, sizeof(buffer), stdin);
for(char *p = buffer; *p != '\n'; p++)
arr[(size_t)*p]++;
for(size_t i = 0; i < MAX_ELEMENTS; i++)
if(arr[i] > 0)
printf("'%c': %d, ", (char)i, arr[i]);
return 0;
}
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
Neue Lösung hinzufügen
Bewertung
Durchschnittliche Bewertung: