Java: Text einlesen und Häufigkeit der Buchstaben analysieren?

Hey! Ich möchte einen Text einlesen und die Häufigkeit der Buchstaben analysieren. Dazu habe ich folgenden Code geschrieben. Leider ist dort irgendwo ein Logikfehler versteckt, den ich aber nicht finde :( Das Programm tut nicht, was es soll. Es wird für alle Buchstaben die Anzahl 0 ausgegeben, was ja nicht sein kann. Ich wäre sehr dankbar, wenn jemand meinen Denkfehler findet. Dankeschön! P.S: hab erst vor 2 Wochen mit Programmieren angefangen, also verurteilt meinen Code nicht gleich ^^

import java.io.*;

public class Buchstabenstatistik { public static void main(String[] args) throws IOException{

    // Es werden 180 000 Buchstaben des Textes "time" eingelesen und in einem char Array 'buchstaben' gespeichert
    FileReader reader = new FileReader("d:\\time.txt");
    int n1 = 180000;
    char[] buchstaben = new char[n1];
    reader.read(buchstaben);
    reader.close();
    
    // Alle Buchstaben des englischen Alphabets werden in einem char Array 'alphabet' gespeichert
    char[] alphabet = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x', 'y', 'z'};
    
    // Es wird ein neues int Array 'counter'angelegt, mit dem später gezählt werden soll, wie oft ein 
    // einzelner Buchstabe im Text vorgekommen ist
    int a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z;
    a = b = c = d = e = f = g = h = i = j = k = l = m = n = o = p = q = r = s = t = u = v = w = x = y = z = 0;
    // Anfangs wird jedem Element des counters der Wert 0 zugewiesen, da ja noch keine Buchstaben gezählt wurden
    int[] counter = {a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z};
    for (int i1 = 0; i1 < counter.length; i1 ++){
        counter[i1] = 0;    
    }
    
    // Jeder Buchstabe im Text (gespeichert im char Array 'buchstaben') wird mit jedem Buchstaben des englischen Alphabets
    // verglichen. Wenn sie übereinstimmen, wird der Array 'counter' an der jeweiligen Stelle im Array, der für einen
    // bestimmten Buchstaben steht, um 1 erhöht
    for (int k1 = 0; k < buchstaben.length; k++) {
        for (int k2 = 0; k2 < alphabet.length; k2 ++) {
            if (buchstaben[k1] == alphabet[k2]) {
                counter[k2] = counter[k2] + 1;
            }
        }   
    }
    // Die Anzahl jedes Buchstaben, der im Text vorgekommen ist, wird ausgegeben
    System.out.println("Anzahl der Buchstaben: ");
    for (int k3 = 0; k3 < counter.length; k3 ++) {
        System.out.println(alphabet[k3] + " : " + counter[k3]);
    }
    //Die prozentuale Häufigkeit der Buchstaben soll berechnet und ausgegeben werden
    // (Anzahl des Buchstaben im Text / Anzahl aller Buchstaben im Text) * 100% 
    System.out.println();
    System.out.println("Häufigkeit der Buchstaben in Prozent: ");
    double h1 = 0;
    for (int k4 = 0; k4 < counter.length; k4 ++) {
        h1  = (counter[k4] / n1) * 100;
        System.out.println(alphabet[k4] + " : " + h1 + " % ");
    }

}

}

Computer, IT, programmieren, Java, Code, Informatik, Häufigkeit
Wie behebe ich die Minecraft Fehlermeldung:,, Internal Exception: java.io.IOException: Eine vorhandene Verbindung wurde vom Remotehost geschlossen ''?

Seit gestern kann ich nicht mehr auf Minecraft Servern spielen. Wenn ich auf einem Server bin, dann bleibt es kurz nach dem ich drin bin hängen und ich werde rausgeschmissen mit folgender Fehlermeldung:

Internal Exception: java.io.IOException: Eine vorhandene Verbindung wurde vom Remotehost geschlossen

Daraufhin geht mein Internet auf diesem Laptop kurzzeitig aus.

An dem Router kann es nicht liegen, da sonst alles auf dem Laptop funktioniert. Außerdem funktionieren meine anderen Geräte auch.

Die alte Java Version habe ich bereits deinstalliert und die neue heruntergeladen, daran liegt es also auch nicht :/

EDIT:

Es ist nicht nur bei Minecraft so, sondern auch bei anderen Spielen. Die bleiben dann auch hängen und es folgt der oben genannte Internet-Absturz auf diesem Laptop.

EDIT: Das Problem ist jetzt nicht wirklich noch nur ein Minecraft Problem, sondern generell mit dem Internet auf diesem Laptop Ich habe den Laptop schon gestern Abend/Nacht zurückgesetzt (beim 1. Mal ohne Datenverlust, das war dann nicht und beim 2. Mal alles zurückgesetzt) Nun habe ich alles wieder eingestellt, jedoch wurde das Problem immer noch nicht gelöst :/ Woran kann es liegen ? Vielleicht doch am Router ?
Spiele, Internet, Windows, Java, Minecraft, Verbindung, Fehlermeldung, Kein internet, minecraft-fehlermeldung, Fortnite
Android Studio: App stürzt ab?

Hallo! Seit neuestem stürzt meine App immer an der gleichen Stelle ab. Habe versucht das Problem selber zu lösen, kam aber zu keiner Lösung. Ich bin über jede Hilfe dankbar :) Hier unten ist meine Logcat:

java.lang.RuntimeException: Unable to start activity ComponentInfo{mycompany.werwolf/mycompany.werwolf.test.Seite2_Karten_Activity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference
                                                                           at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2452)
                                                                           at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512)
                                                                           at android.app.ActivityThread.access$900(ActivityThread.java:158)
                                                                           at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1364)
                                                                           at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                           at android.os.Looper.loop(Looper.java:148)
                                                                           at android.app.ActivityThread.main(ActivityThread.java:5521)
                                                                           at java.lang.reflect.Method.invoke(Native Method)
                                                                           at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:804)
                                                                           at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:666)
                                                                        Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference
                                                                           at mycompany.werwolf.test.Seite2_Karten_Activity.onCreate(Seite2_Karten_Activity.java:230)
                                                                           at android.app.Activity.performCreate(Activity.java:6446)
                                                                           at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1112)
                                                                           at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2405)
                                                                           at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512) 
                                                                           at android.app.ActivityThread.access$900(ActivityThread.java:158) 
                                                                           at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1364) 
                                                                           at android.os.Handler.disp
PC, Computer, App, Programm, programmieren, Java, Android
[Minecraft/Spigot/Java] Wie kann ich aus einem GameProfile Skins abspeichern?

Hallo,

ich würde gerne wissen wie ich aus dem GameProfile die für den Skin nötigen Daten bekomme, um diese abzuspeichern.

Es soll zu einem Cachingsystem dienen, damit auch beispielsweise die Köpfe von Spielern angezeigt werden können, die nicht online sind, ohne zu viele Anfragen an die Mojang Server zu stellen.

Folgenden Code nutze ich um das GameProfile von einem Spieler zu erhalten und diesem seinen eigene Kopf über die Informationen des GameProfiles zu geben. Dabei wende ich ein Object aus dem Reflection Bereich an (Field).

    public static ItemStack getFriendTool(Player p){
    
    SkullMeta freundeMeta = (SkullMeta) Bukkit.getItemFactory().getItemMeta(Material.SKULL_ITEM);
    GameProfile gp = ((CraftPlayer) p).getProfile();
    
    try {
        Field field = skullMetaClass.getDeclaredField("profile");
        field.setAccessible(true);
        try {
            field.set(freundeMeta, gp);
        } catch (IllegalArgumentException | IllegalAccessException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        field.setAccessible(!field.isAccessible());
    } catch (NoSuchFieldException | SecurityException e) {
        e.printStackTrace();
    }
    freundeMeta.setDisplayName("§eFreunde");
    ArrayList<String> freundeLore = new ArrayList<String>();
    freundeLore.add("Mit einem Rechtsklick öffnest Du die Freunde Übersicht,");
    freundeMeta.setLore(freundeLore);
    ItemStack freundeTool = new ItemStack(Material.SKULL_ITEM,1, (byte)3);
    freundeTool.setItemMeta(freundeMeta);
    return freundeTool;
}

Dieser Code funktioniert bereits nur wäre es eben gut, wenn ich die nötigen Informationen aus dem GameProfile abspeichern könnte und diese wiederverwenden könnte.

Meiner Überlegung nach, müsste ich diese aus einem Property Object bekommen, leider hat aber eine Recherche nichts gebracht.

Vielen Dank für jegliche Hilfe.

Server, Computer, Internet, Programm, programmieren, Java, Minecraft, Minecraft Server, Spiele und Gaming

Meistgelesene Beiträge zum Thema Java