String um zeichen ergänzen

Status
Nicht offen für weitere Antworten.

u6g58h8i67roi

Bekanntes Mitglied
ich habe einen string blah = "blah" und ich möchte nun eine schleife bauen die solange blah nicht 26 zeichen lang ist immer ein leerzeichen hinzufügt.
ich habe das schon versucht aber irgendwie will das net so funzen wie ich möchte

Code:
                 for (int e = blah.length();26 >= e; e++){
                 blah = blah + " ";
                 }

bitte um hilfe =)
 
S

SlaterB

Gast
while(blah.length() < 26){
blah = blah + " ";
}

bzw einfach nur >= in < ändern? ne doch nicht, wieso gehts denn nicht?

Code:
public class Test
{

    public static void main(String[] args)
        throws Exception
    {
        String blah = "a";
        for (int e = blah.length(); 26 > e; e++)
        {
            blah = blah + " ";
        }
        System.out.println(blah.length());


    }

}
kommt doch hin, mit >= zwar 27 und nicht 26, aber das ist ja ein kleiner Fehler
 

u6g58h8i67roi

Bekanntes Mitglied
das problem ist das blah aus einer TreeMap kommt, und wenn ich das so mache wie du mir sagst dann kommt ne exception :

Code:
Exception in thread "main" java.lang.NullPointerException
        at DNA.java.Berechnung$1.compare(Berechnung.java:231)
        at DNA.java.Berechnung$1.compare(Berechnung.java:229)
        at java.util.TreeMap.getEntryUsingComparator(TreeMap.java:351)
        at java.util.TreeMap.getEntry(TreeMap.java:322)
        at java.util.TreeMap.get(TreeMap.java:255)
        at DNA.java.Berechnung.main(Berechnung.java:255)
Java Result: 1
 
S

SlaterB

Gast
> und wenn ich das so mache wie du mir sagst dann kommt ne exception

genauer: und wenn du da komische Sachen machst, dann kommt ne exception

dazu kann aber niemand auf der Welt etwas sagen, was in deinem Code so abgeht..
 

ARadauer

Top Contributor
lol

ned streiten! while wäre in diesem fall angebrachter. aber egal die erste lösung stimmt ja eh (fast). du musst halt dafür sorgen das dein String nicht null ist.
 

u6g58h8i67roi

Bekanntes Mitglied
hier mein code :

Code:
package DNA.java;

import java.awt.*;
import java.text.*;
import java.io.* ;
import java.util.*;
import java.lang.*;
import javax.swing.*;
import java.net.* ;



public class Berechnung {
//    private HTMLEditorKit htmlKit;
//    private HTMLDocument doc;
    
    public Berechnung() {}
    
    
    public static void main(String[] berechnung) throws Exception {
        
        
        BufferedReader br0 = new BufferedReader(new InputStreamReader(System.in));
        String[] o ={"nick","read","datum1","onMin"};
        URL url;
        int time = 0;
        double onMinD;
        int i =0;
        String[] nicks = {"","","","","","","","","",""};
        Double[] werte = {0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0};
        
        String sy = "";
        String gut ="";
        String nick = "";
        String read = "";
        String datum1 = "";
        String onMin ="";
        int y = 0;
        
        System.out.println("bitte zehn nicks eingeben,diese bitte mit komma trennen");


//beispieleingabe die funktioniert :
// Bussiiigirl,Freier Noi,Mirko24,Gina D,Audi 80 B4 Fahrer,Essener84,vbmaus,XXBadBoyT,boah ey 110,Soul1982


        DateFormat df = new SimpleDateFormat("dd.MM.yyyy");
        DateFormat defaultDate = DateFormat.getDateInstance();
        String datum = defaultDate.format(new java.util.Date());
        Date to = df.parse(datum);
        
        StringTokenizer st = new StringTokenizer(br0.readLine() , ",");
        while (st.hasMoreTokens()) {
            for (int x =0; x <= 9; x++) {
                
                nick = "http://knuddels.de/ww/"+st.nextToken();
                
                
                if (nick.contains(" "));
                {
                    nick = nick.replace(" ","_");
                    
                    url = new URL(nick);
                    Exception fehler = new Exception();
                }
                //System.out.println(nick);
                
                BufferedReader br1 = new BufferedReader(new InputStreamReader(url.openStream()));
                
                
                while((read = br1.readLine()) != null){
                    
                    
                    
                    
                    
                    read = read.replace("<HTML><HEAD><META HTTP-EQUIV=\"Refresh\" CONTENT=\"0; URL=", "");
                    read = read.replace("\"></HEAD></HTML>", "");
                    
                    url = new URL(read);
                    
                    BufferedReader br2 = new BufferedReader(new InputStreamReader(url.openStream()));
                    
                    while((read = br2.readLine()) != null){
                        
                        
                        
                        nick = nick.replace("http://knuddels.de/ww/", "");
                        
                        if (read.contains("<FONT FACE=\"Arial\">
[B]"))//(b == 45)
                        {
                            
                            
                            read = read.replace("<FONT FACE=\"Arial\">
[B]", "");
                            read = read.replace("<FONT COLOR=\"#000000\" SIZE=2>[/B]<FONT COLOR=\"000000\"> hat sich am [B]", "");
                            
                            if (read.contains("http://spenden.knuddels.de")) {
                                read = read.replace("<a href=\"http://spenden.knuddels.de\" target=_blank><img border=0 src=\"../../images/ico_ribbon.gif\"></a> ", "") ;
                                read = read.replace("<FONT COLOR=\"#000000\" SIZE=2>[/B]<FONT COLOR=\"000000\">hat sich am [B]", "");
                                
                            }
                            
                            
                            if (read.contains("&")) {
                                read = read.replace("&", " ");
                            }
                            if (nick.contains("_")) {
                                nick = nick.replace("_", " ");
                            }
//                            System.out.println(nick);
                            int zeichen = nick.length();
                            
                            
                            int k= 0;
                            int h = nick.length();
                            if (zeichen == nick.length()){
                                
                                
                                nick = read.substring(0, h);
                                
                                k = nick.length() + 10 ;
                                
                                datum1 = read.substring( h, k);
                                //                              System.out.println("das ist datum1 " + datum1);
                                String time1 = read.substring(h + 39, h + 47);
                                
                                String blah = nick + datum1 + "[/B]<FONT COLOR=\"000000\"> um " + time1 + " bei Knuddels registriert und seitdem schon [B]";
                                read = read.replace(nick + datum1 + "[/B]<FONT COLOR=\"000000\"> um " + time1 + " bei Knuddels registriert und seitdem schon [B]", "");
                                //                            System.out.println(read);
                                String ez = read.substring(0, 10);
                                String[] n = {"0","1","2","3","4","5","6","7","8","9"};
                                
                                for (int a =0; a <= 9; a++) {
                                    String t = ez.substring(a, a+1);
                                    for (int j =0; j <= 9; j++) {
                                        if  (t.contains(n[j])){
                                            onMin = onMin + n[j];
                                            //                                  System.out.println(onMin);
                                        }}}
                                
                                
                                
                                
                                
                                
                                //                        System.out.println("Minuten = " + onMin);
                                //                      System.out.println("Datum = " + datum1);//df.format()
                                onMinD  = Double.parseDouble( onMin ) ;
                                
                                //                    System.out.println(onMinD);
                                
                                
                                Date from = df.parse(datum1);
                                double diffMillis = to.getTime() - from.getTime();
                                double diffMins =  diffMillis / (1000 * 60 );
                                //ausrechnen der minuten und der stunden
                                double erg = (100 / diffMins ) * (double) onMinD ;
                                
                                double stunden = erg * 0.24  ;
                                double minuten = stunden * 60 ;
                                
                                //Runden der Werte auf zwei stellen hinter dem komma
                                erg = Math.round( erg * 100. ) / 100.;
                                //                  System.out.println(erg);
                                stunden = Math.round( stunden * 100. ) / 100.;
                                minuten = Math.round( minuten * 100. ) / 100.;
                                
                                String som = "";
                                String hours = "Das entspricht " + stunden + " Stunden am Tag";
                                String hour = "Genau eine Stunde am Tag";
                                String mins = "das sind " + minuten + " minuten am tag";
                                //wenn es weniger als eine stunde ist dann werden die minuten ausgegeben!
                                if     ( stunden > 1 ) {
                                    som = hours;
                                } else {
                                    if (stunden == 1){
                                        som = hour;
                                    }
                                    if ( stunden < 1) {
                                        som = mins;
                                    }
                                }
                                
                                
                                
                                
                                
                                String diff = "Die Differenz in Minuten ist " + diffMins + " Minuten" ;
                                String regDateO = "Du hast dich am " + df.format(from) + " hier registriert";
                                String onTime = "Du warst " + erg  + " % Deines Lebens hier Online seit Du dich registriert hast";
                                String sOderM = som;
                                
                                //Eigendliche Ausgabe.
                                
//                                System.out.println(diff);
//                                System.out.println(regDateO);
//                                System.out.println(onTime);
//                                System.out.println(som);
                                
                                
                                
//                                System.out.println("#" + regDateO + "#" + onTime + "#" + som);
                                onMin = "" + "";
                                nicks[i] = nick ;
                                
                                werte[i] = erg ;
                                
                                i++;
                                
                                //aufräumen
                                
                                
                            } //2. if bedingung wird geschlossen
                        } //1. if bedingung wird geschlossen
                    } //2. while schleife wird geschlossen
                    br2.close();
                } //1. while schleife wird geschlossen
                
                br1.close();
            }
            br0.close();
        }
        final Map<String, Double> map = new HashMap<String, Double>();
        map.put(nicks[0],werte[0]);
        map.put(nicks[1],werte[1]);
        map.put(nicks[2],werte[2]);
        map.put(nicks[3],werte[3]);
        map.put(nicks[4],werte[4]);
        map.put(nicks[5],werte[5]);
        map.put(nicks[6],werte[6]);
        map.put(nicks[7],werte[7]);
        map.put(nicks[8],werte[8]);
        map.put(nicks[9],werte[9]);
        
        Comparator<String> comparator = new Comparator<String>() {
            public int compare(String a, String b) {
                return -map.get(a).compareTo(map.get(b));                
            }
        };
        
        
        
        Map<String, Double> sortedMap = new TreeMap<String, Double>(comparator);
        sortedMap.putAll(map);
        
        for (String s : sortedMap.keySet()) {
            
        for (int e = s.length(); 26 > e; e++)
        {
            s ="-" + s;
        }
        
        System.out.println("#" + s + " -> " +  sortedMap.get(s));
            
        }
    } //main methode wird geschlossen
} //programm wird geschlossen

und hier die Exception :

Code:
Exception in thread "main" java.lang.NullPointerException
        at DNA.java.Berechnung$1.compare(Berechnung.java:231)
        at DNA.java.Berechnung$1.compare(Berechnung.java:229)
        at java.util.TreeMap.getEntryUsingComparator(TreeMap.java:351)
        at java.util.TreeMap.getEntry(TreeMap.java:322)
        at java.util.TreeMap.get(TreeMap.java:255)
        at DNA.java.Berechnung.main(Berechnung.java:246)
Java Result: 1


( die ganzen System.out.printLn sind entweder für mich zum verständniss oder zur fehlersuche drin hab die mal alle auskommentiert da die ja im moment keine rolle spielen)


wie realisiere ich das jetzt mit der zeichenergänzung? ohne das eine Exception angezeigt wird.
 
G

Guest

Gast
Hm. Also ich hab zwar kein Plan was das ganze Map-Zeug ist ^^
Aber fang doch alle paar Schritte erst mal was mit nem System.out.println ab...
z.B. was steht in "s" oder wie lange ist "s" usw. eben.

Mehr weiß ich jetzt auch nicht. Habe jetzt auch keine Zeit mir den ganzen Text durchzulesen

cya
 

u6g58h8i67roi

Bekanntes Mitglied
wenn ich nach zeile 284 system.out.printLn (s);
mache dann gibt er mir den nick aus, aber wenn ich dann irgendwas in die richtung s = s + " ";
oder so versuche bekomme ich ne nullpointerException wie oben, ich verstehe nicht was das problem ist,
ist s denn kein string?
 

Joker

Bekanntes Mitglied
füge in deine comparator Methode mal ein

Code:
                     if(map.containsKey(a) && map.containsKey(b)) {
                     return -map.get(a).compareTo(map.get(b));     
                     } else {
                         System.out.println("nicht gefunden: a:"+a+" b:"+b);
                         return 0;
                     }

ein. Dann weißt du wenigstens an welchen Werten es hängt. Du versucht nämlich auf Keys in der Map zuzugreifen die so in der Map nicht existieren. (ps.: kannst natürlich das selbe auch über try-catch erledigen ;))



ps.: Java ist eine Objektorientierte Sprache ;)
 

lukian

Mitglied
Hi,

also erstmal klingt die Idee, die Keys eines Hashs künstlich mit Leerzeichen zur verlängern ein wenig sonderbar und ich vermute mal, dass es elegantere Wege zur Lösung deines Problems (was immer das sein mag) gibt. Die Exception taucht allerdings in Zeit 246 auf und liegt vermutlich daran, dass sortedMap null ist bzw. keyset() null zurück gibt . Woran das liegt kann ich Dir aber beim besten Willen nicht sagen.

Ich würde Dir vorschlagen, dass Du erzählst, was Du eigentlich vor hast und WARUM du die Leerzeichen anhängen willst. Denn deine Idee kann einfach nicht der richtige Weg sein.

Gruß,
lukian
 

u6g58h8i67roi

Bekanntes Mitglied
oh dann erkläre ic mal was ich machen will,
also ich schreibe das programm in erste linie um so viel von java wie möglich lernen zu können,
ich hatte aber am anfang keine idee was ich machen soll,
da ich in einem bestimmten chat angemeldet bin und dort einen chatter gesehen habe der einmal etwas gepostet hat was sich "suchtywerte top ten" nannte mit einer rangliste von chattern die einen bestimmten wert hatten
hab ich mir zu allererst überlegt wie dieser wert wohl zustande kommt, das hab ich dann mit der berechnung realisiert, als nächstes musste ich jetzt noch einen weg finden die werte die ich dafür brauche irgendwoher zu bekommen,
da man in diesem chat ab einer gewissen onlinezeit einen rang bekommt und ab diesem rang eine eigen htmlseite mit seinem profil hat,
dachte ich mir ich lese einfach die relevanten werte aus (onlineminuten und registrierungsdatum),
dann brauchte ich noch eine vernünftige ausgabe,
die hab ich jetzt auch "eigendlich", denn ich möchte das ganze etwas schöner ausgegeben haben

eine # entspricht in dem chat einem zeilenumbruch mit ....... davor beispiel :
Code:
#hallo#lalala
wird zu
Code:
........hallo
........lalala

und ich möchte nicht das die tabelle so ausgegeben wird :

Eingabe im chat:

Code:
#~~~~~~~~~~~~~~>Suchtwerte Top-Ten<~~~~~~~~~~~~~~##Superzicke Nina ->
 25.57#aboleo -> 22.05#InuYasha18 -> 12.89#SexyGirl1086 -> 11.58#gunersblumer -> 10.51#Herzdieb1 ->
 10.18#LuXuzChica -> 8.91#chillbaba -> 8.75#Bad-Angel-m -> 7.28#Sebastian016 -> 4.45

Ausgabe im Chat:

Code:
.........~~~~~~~~~>Suchtywerte Top-ten<~~~~~~~~~~
.........
.........TiggerLady22 -> 18.12
.........Werwolfjäger -> 16.59
.........miriam1987w i love you -> 11.31
.........Herzdieb1 -> 10.18
.........Bias01 -> 10.01
.........Gina D -> 8.69
.........Freier Noi -> 7.53
.........HoneyBunny18 -> 5.35
.........Green Lantern -> 5.14
.........wilder-Mann -> 3.63

sondern das sie so ausgegeben werden :

Code:
.........~~~~~~~~~>Suchtywerte Top-ten<~~~~~~~~~~
.........
.........1.)     TiggerLady22                    18.12
.........2.)     Werwolfjäger                    16.59
.........3.)     miriam1987w i love you          11.31
.........4.)     Herzdieb1                       10.18
.........5.)     Bias01                          10.01
.........6.)     Gina D                          8.69
.........7.)     Freier Noi                      7.53
.........8.)     HoneyBunny18                    5.35
.........9.)     Green Lantern                   5.14
.........10.)    wilder-Mann                     3.63

das sieht etwas ordentlicher aus =)
 

domar

Mitglied
Code:
for (String s : sortedMap.keySet())

Was soll das heißen???

Du gehst jeden String s durch, der in sortedMap.keySet() drinn ist oder??

Wenn du das wirklich bezwecken willst frag ich mich, wie das geht!
Ich kenn das nur, wenn man einen Vector durchgehen will!
 

u6g58h8i67roi

Bekanntes Mitglied
ich gehe jeden String s durch und gebe ihn dann in einer zeile aus und seinen zugehörigen wert, was soll daran so kurios sein?
 

lukian

Mitglied
Das funktioniert schon so richtig. Jede Klasse die das Interface 'Iterable' implementiert kann auf diese Weise verwendet werden.

Allerdings hatte Joker das Problem anscheinend schon längst erkannt und einen Tipp gegeben. Dein Comparator ist komplett falsch implementiert.

Probier's mal mit
Code:
public int compare(String o1, String o2) {
	return -o1.compareTo(o2);
}

Gruß,
lukian
 

u6g58h8i67roi

Bekanntes Mitglied
hmm ich glaube keiner hier mag meine postings wirklich lesen oder? mein problem besteht nicht im code selber der ist fehlerfrei und funktioniert auch ganz toll

nur möchte ich die ausgabe um ein paar leestellen erweitern, das ist das einzige problem was ich habe,

und da s anscheinend = null ist aber dennoch ein string ausgegeben wird bei System.out.printLn (s) weiß ich nicht wie ich das realisieren soll.

ich könnte jetzt zwar alles wieder in zwei arrays schreiben lassen und diese arrays dann ausgeben lassen und um die entsprechenden zeichen ergänzen, aber das wäre viel zu viel code und würde in einem wirrwarr enden wo ich nacher selbst nicht mehr durchblicke, ich denke da muss es eine bessere lösung geben wie ich mit s direkt weiterarbeiten kann
 

Joker

Bekanntes Mitglied
@lukian: dein Code wird aber nicht funktionieren. Er möchte ja nicht die beiden Strings a und b vergleichen, sondern den Inhalt der Map mit den Keys a und b ;)

nur möchte ich die ausgabe um ein paar leestellenerweitern, das ist das einzige problem was ich habe, und da s anscheinend = null ist aber dennoch ein string ausgegeben wird bei System.out.printLn weiß ich nicht wie ich das realisieren soll.

wie wäre es mit dem Einfügen von Tabulatoren (mit \t)? Das ist doch genau das was du suchst.

Code:
System.out.println("spalte1\t\tspalte2")
System.out.println("s1\t\ts2")

sollte zum Beispiel in der von dir gewünschten Art ausgegeben werden ;)
 
S

SlaterB

Gast
@DNA:
die gleiche Exception tritt hier auf:
Code:
public class Test
{

    public static void main(String[] args)
        throws Exception
    {
        final Map<String, Double> map = new HashMap<String, Double>();
        map.put("a", 5.);
        map.put("d", 6.);
        map.put("c", 4.);
        Comparator<String> comparator = new Comparator<String>()
            {
                public int compare(String a, String b)
                {
                    return -map.get(a).compareTo(map.get(b));
                }
            };

        Map<String, Double> sortedMap = new TreeMap<String, Double>(comparator);
        sortedMap.putAll(map);

        for (String s : sortedMap.keySet())
        {
            for (int e = s.length(); 26 > e; e++)
            {
                s = "-" + s;
            }
            System.out.println("#" + s + " -> " + sortedMap.get(s));
        }
    }

}
Problem:
du rufst sortedMap.get() mit einem String auf, zudem kein Value in der Map enthalten ist,
bei der Suche nach diesem Wert wird das compareTo des Comparators verwendet,

dieser vergleicht die zugehörigen Values,
da der Value für den neuen String null ist, liefert irgendwann
null.compareTo(other);
eine NullPointerException

> und da s anscheinend = null ist
s ist nicht null
 

lukian

Mitglied
Joker hat gesagt.:
@lukian: dein Code wird aber nicht funktionieren. Er möchte ja nicht die beiden Strings a und b vergleichen, sondern den Inhalt der Map mit den Keys a und b ;)

Och Schade. Und ich dachte, Du hättest Ahnung, Joker :wink: Ich habe Comparable genau so implementiert, wie es richtig ist und es funktioniert auch einwandfrei. Wir sollten hier aber keine Grundlagendiskussionen über Java führen.

Gruß,
lukian
 

u6g58h8i67roi

Bekanntes Mitglied
@slater ja die exception kommt weil ich die ifbedingung nicht auskommentiert habe das weiß ich ,aber sonst ist mein code ja in ordnung

@Joker ich mag ungerne 10 zeilen mit System.out.printLn (blah) haben ,ich möchte das daß was ich will automatisch eingefügt wird,von mir aus auch tabulatoren.
 

lukian

Mitglied
Also jetzt bin ich verwirrt.
Wenn Du eh weißt, woher die Exception kommt, warum hast Du dann vorhin den Code + Exception gepostet? Irgendwie hab ich jetzt keine Lust mehr, außer du hast ein kleines, kompilierbares Beispiel in welchem Du uns dein Problem klarmachst.

Gruß,
STeffen
 

u6g58h8i67roi

Bekanntes Mitglied
ich habe den code + Exception gepostet um zu zeigen das die methode mit der if bedingung nicht funktioniert

hier bitte:

Code:
package DNA.java;

import java.awt.*;
import java.text.*;
import java.io.* ;
import java.util.*;
import java.lang.*;
import javax.swing.*;
import java.net.* ;



public class Berechnung {
//    private HTMLEditorKit htmlKit;
//    private HTMLDocument doc;
    
    public Berechnung() {}
    
    
    public static void main(String[] berechnung) throws Exception {
        
        
        BufferedReader br0 = new BufferedReader(new InputStreamReader(System.in));
        String[] o ={"nick","read","datum1","onMin"};
        URL url;
        int time = 0;
        double onMinD;
        int i =0;
        String[] nicks = {"","","","","","","","","",""};
        Double[] werte = {0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0};
        
        String sy = "";
        String gut ="";
        String nick = "";
        String read = "";
        String datum1 = "";
        String onMin ="";
        int y = 0;
        
        System.out.println("Zehn nicks durch komma getrennt eingeben bitte");
        DateFormat df = new SimpleDateFormat("dd.MM.yyyy");
        DateFormat defaultDate = DateFormat.getDateInstance();
        String datum = defaultDate.format(new java.util.Date());
        Date to = df.parse(datum);
        
        StringTokenizer st = new StringTokenizer(br0.readLine() , ",");
        while (st.hasMoreTokens()) {
            for (int x =0; x <= 9; x++) {
                
                nick = "http://knuddels.de/ww/"+st.nextToken();
                
                
                if (nick.contains(" "));
                {
                    nick = nick.replace(" ","_");
                    
                    url = new URL(nick);
                    Exception fehler = new Exception();
                }
                //System.out.println(nick);
                
                BufferedReader br1 = new BufferedReader(new InputStreamReader(url.openStream()));
                
                
                while((read = br1.readLine()) != null){
                    
                    
                    
                    
                    
                    read = read.replace("<HTML><HEAD><META HTTP-EQUIV=\"Refresh\" CONTENT=\"0; URL=", "");
                    read = read.replace("\"></HEAD></HTML>", "");
                    
                    url = new URL(read);
                    
                    BufferedReader br2 = new BufferedReader(new InputStreamReader(url.openStream()));
                    
                    while((read = br2.readLine()) != null){
                        
                        
                        
                        nick = nick.replace("http://knuddels.de/ww/", "");
                        
                        if (read.contains("<FONT FACE=\"Arial\">
[B]"))//(b == 45)
                        {
                            
                            
                            read = read.replace("<FONT FACE=\"Arial\">
[B]", "");
                            read = read.replace("<FONT COLOR=\"#000000\" SIZE=2>[/B]<FONT COLOR=\"000000\"> hat sich am [B]", "");
                            
                            if (read.contains("http://spenden.knuddels.de")) {
                                read = read.replace("<a href=\"http://spenden.knuddels.de\" target=_blank><img border=0 src=\"../../images/ico_ribbon.gif\"></a> ", "") ;
                                read = read.replace("<FONT COLOR=\"#000000\" SIZE=2>[/B]<FONT COLOR=\"000000\">hat sich am [B]", "");
                                
                            }
                            
                            
                            if (read.contains("&")) {
                                read = read.replace("&", " ");
                            }
                            if (nick.contains("_")) {
                                nick = nick.replace("_", " ");
                            }
//                            System.out.println(nick);
                            int zeichen = nick.length();
                            
                            
                            int k= 0;
                            int h = nick.length();
                            if (zeichen == nick.length()){
                                
                                
                                nick = read.substring(0, h);
                                
                                k = nick.length() + 10 ;
                                
                                datum1 = read.substring( h, k);
                                //                              System.out.println("das ist datum1 " + datum1);
                                String time1 = read.substring(h + 39, h + 47);
                                
                                String blah = nick + datum1 + "[/B]<FONT COLOR=\"000000\"> um " + time1 + " bei Knuddels registriert und seitdem schon [B]";
                                read = read.replace(nick + datum1 + "[/B]<FONT COLOR=\"000000\"> um " + time1 + " bei Knuddels registriert und seitdem schon [B]", "");
                                //                            System.out.println(read);
                                String ez = read.substring(0, 10);
                                String[] n = {"0","1","2","3","4","5","6","7","8","9"};
                                
                                for (int a =0; a <= 9; a++) {
                                    String t = ez.substring(a, a+1);
                                    for (int j =0; j <= 9; j++) {
                                        if  (t.contains(n[j])){
                                            onMin = onMin + n[j];
                                            //                                  System.out.println(onMin);
                                        }}}
                                
                                
                                
                                
                                
                                
                                //                        System.out.println("Minuten = " + onMin);
                                //                      System.out.println("Datum = " + datum1);//df.format()
                                onMinD  = Double.parseDouble( onMin ) ;
                                
                                //                    System.out.println(onMinD);
                                
                                
                                Date from = df.parse(datum1);
                                double diffMillis = to.getTime() - from.getTime();
                                double diffMins =  diffMillis / (1000 * 60 );
                                //ausrechnen der minuten und der stunden
                                double erg = (100 / diffMins ) * (double) onMinD ;
                                
                                double stunden = erg * 0.24  ;
                                double minuten = stunden * 60 ;
                                
                                //Runden der Werte auf zwei stellen hinter dem komma
                                erg = Math.round( erg * 100. ) / 100.;
                                //                  System.out.println(erg);
                                stunden = Math.round( stunden * 100. ) / 100.;
                                minuten = Math.round( minuten * 100. ) / 100.;
                                
                                String som = "";
                                String hours = "Das entspricht " + stunden + " Stunden am Tag";
                                String hour = "Genau eine Stunde am Tag";
                                String mins = "das sind " + minuten + " minuten am tag";
                                //wenn es weniger als eine stunde ist dann werden die minuten ausgegeben!
                                if     ( stunden > 1 ) {
                                    som = hours;
                                } else {
                                    if (stunden == 1){
                                        som = hour;
                                    }
                                    if ( stunden < 1) {
                                        som = mins;
                                    }
                                }
                                
                                
                                
                                
                                
                                String diff = "Die Differenz in Minuten ist " + diffMins + " Minuten" ;
                                String regDateO = "Du hast dich am " + df.format(from) + " hier registriert";
                                String onTime = "Du warst " + erg  + " % Deines Lebens hier Online seit Du dich registriert hast";
                                String sOderM = som;
                                
                                //Eigendliche Ausgabe.
                                
//                                System.out.println(diff);
//                                System.out.println(regDateO);
//                                System.out.println(onTime);
//                                System.out.println(som);
                                
                                
                                
//                                System.out.println("#" + regDateO + "#" + onTime + "#" + som);
                                onMin = "" + "";
                                nicks[i] = nick ;
                                
                                werte[i] = erg ;
                                
                                i++;
                                
                                //aufräumen
                                
                                
                            } //2. if bedingung wird geschlossen
                        } //1. if bedingung wird geschlossen
                    } //2. while schleife wird geschlossen
                    br2.close();
                } //1. while schleife wird geschlossen
                
                br1.close();
            }
            br0.close();
        }
        final Map<String, Double> map = new HashMap<String, Double>();
        map.put(nicks[0],werte[0]);
        map.put(nicks[1],werte[1]);
        map.put(nicks[2],werte[2]);
        map.put(nicks[3],werte[3]);
        map.put(nicks[4],werte[4]);
        map.put(nicks[5],werte[5]);
        map.put(nicks[6],werte[6]);
        map.put(nicks[7],werte[7]);
        map.put(nicks[8],werte[8]);
        map.put(nicks[9],werte[9]);
        
        Comparator<String> comparator = new Comparator<String>() {
            public int compare(String a, String b) {
                return -map.get(a).compareTo(map.get(b));                
            }
        };
        
        
        
        Map<String, Double> sortedMap = new TreeMap<String, Double>(comparator);
        sortedMap.putAll(map);
        
        for (String s : sortedMap.keySet()) {
                       
        
        System.out.println("#" + s + " -> " +  sortedMap.get(s));
        //System.out.println("#" + s + "\t\t\t\t\t\t" + sortedMap.get(s)) ;
        
        }//letzte for schleife wird geschlossen
    } //main methode wird geschlossen
} //programm wird geschlossen

der code funktioniert , nimm als eingabe am besten

aede,dnaofdeath,piage,holgi,zorn,strawberry123,albion,joyce-fay,deep dive corporation,electrica
 

u6g58h8i67roi

Bekanntes Mitglied
moah zum hundertsten mal,

ich will die ausgabe mit ein paar zusätzlichen tabulatoren oder leerzeichen versehen damit es etwas übersichtlicher aussieht, aber das bekomme ich irgendwie nicht hin

so jetzt verstanden?

ich brauche nur jemand der mir eine möglichkeit nennt wie ich mit dem wert S so unglaublich sachen anstelle wie leezeichen einfügen oder tabulatoren oder von mir aus auch schafe, mir egal, hauptsach ich kann dann etwas einfügen, am besten so das nachher 27 zeichen von dem nick eingenommen werden und danach erst der wert steht also NACH insgesammt 27 zeichen
 
G

Guest

Gast
Also,
ich weiß gar nicht, warum du dich beschwerst. Wer unfähig ist, vernünftige und nachvollziehbare Fragen zu stellen muss sich über wirre Antworten nicht wundern. Ich weiß immer noch nicht, von was für einer if-Abfrage du faselst. Ich hoffe, der Unterschied zu einer FOR-Schleife ist dir bewusst.

Folgendes Beispiel zeigt, warum dein Code nicht funktionieren kann. Ich erklär's jetzt nicht, sondern da musst du mal alleine durch. So schwer isses ja nich.

Code:
public static void main(String[] args){
	TreeMap<String, Double> map = new TreeMap<String, Double>();
	map.put("bla", 1.2);
	
	for (String element : map.keySet()) {
		// aendere 'bla' auf 'blubb' (wirklich?)
		element = "blubb";
	}
	System.out.println(map.get("bla")); // funktioniert
	System.out.println(map.get("blubb")); // kann nicht funktionieren			
}


Vielleicht das nächste mal selbst versuchen, ein kleines Beispiel zu erstellen, anstatt rumzumeckern.

Gruß,
lukian
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
R Größter zusammenhängender Block gleicher Zeichen im String Java Basics - Anfänger-Themen 1
I Eindeutiger String mit maximaler Anzahl an Zeichen Java Basics - Anfänger-Themen 11
A String split funktioniert nicht, wenn mehr als 1 Ziffer vor dem Zeichen steht nach dem er trennen soll? Java Basics - Anfänger-Themen 4
K Wie String prüfen ob drei mal das gleiche Zeichen vorkommt? Java Basics - Anfänger-Themen 7
T Zeichen im String verschiebe Java Basics - Anfänger-Themen 17
J Verschieben von Buchstaben in einem String um vorgegebene Anzahl von Zeichen innerhalb eines weiteren String Java Basics - Anfänger-Themen 12
Dimax Erste Schritte String replace alle Zeichen Java Basics - Anfänger-Themen 10
J Zeichen im String zählen Java Basics - Anfänger-Themen 3
O String von vorne nach hinten an einem Zeichen Java Basics - Anfänger-Themen 10
L String auf bestimmte zeichen untersuchen Java Basics - Anfänger-Themen 9
D gebe string zurück mit von bis bestimmtes Zeichen Java Basics - Anfänger-Themen 4
Y String auf allgemein Zeichen untersuchen Java Basics - Anfänger-Themen 3
S String trennen nach beliebigen Zeichen Java Basics - Anfänger-Themen 3
C Zeichen im String bis zu bestimmter Stelle entfernen Java Basics - Anfänger-Themen 6
S Das Anführungszeichen(") Zeichen in einen String setzen Java Basics - Anfänger-Themen 1
B zeichen eines String mit der kleinsten Frequenz zurückgeben Java Basics - Anfänger-Themen 25
m0n4ch Variablen String auf ungültige Zeichen überprüfen Java Basics - Anfänger-Themen 13
Voreck String Zeichen für Zeichen auslesen Java Basics - Anfänger-Themen 9
R Zeichen in String vergleichen Java Basics - Anfänger-Themen 75
D String Zeichen für Zeichen auslesen Java Basics - Anfänger-Themen 5
D Java doppelte Zahl/Zeichen in einem String entfernen Java Basics - Anfänger-Themen 6
C Anzahl bestimmter Zeichen in einem String ausgeben Java Basics - Anfänger-Themen 7
I String abschneiden erste und letzte Zeichen Java Basics - Anfänger-Themen 3
S Leerzeichen zwischen zwei Zeichen im String entfernen Java Basics - Anfänger-Themen 19
F In einem String nach einem String suchen und Zeichen danach ausgeben Java Basics - Anfänger-Themen 6
Q Erste Schritte Zeichen in String farblich hervorheben Java Basics - Anfänger-Themen 4
P String Zeichen zuweisen Java Basics - Anfänger-Themen 3
P Methode die String auf Zeichen überprüft Java Basics - Anfänger-Themen 2
W String von hinten alle drei Zeichen abschneiden und in umgekehrter Reihenfolge ausgeben. Java Basics - Anfänger-Themen 9
J String Ausgabe nicht-leerer Zeichen nicht korrekt Java Basics - Anfänger-Themen 10
I Zeichen aus String ziehen Java Basics - Anfänger-Themen 3
J Zeichen aus String Array lesen Java Basics - Anfänger-Themen 13
T String - kleinstes Zeichen bestimmen Java Basics - Anfänger-Themen 3
B String der eigentlich eine Ansammlung von HEX zeichen ist in datei schreiben in Hex Java Basics - Anfänger-Themen 8
C String auf bestimmtes Zeichen prüfen Java Basics - Anfänger-Themen 7
G String mit verschiedenen Zeichen analysieren Java Basics - Anfänger-Themen 5
S String mit ASCII/HTML Zeichen darstellen Java Basics - Anfänger-Themen 10
J Ascii Zeichen von einem String umwandeln und ausgeben Java Basics - Anfänger-Themen 11
A einzelne Zeichen aus String auslesen Java Basics - Anfänger-Themen 3
J Aus einem String unbekannte zeichen filtern Java Basics - Anfänger-Themen 11
M zeichen aus string entfernen Java Basics - Anfänger-Themen 2
T Erstes Zeichen aus String löschen Java Basics - Anfänger-Themen 8
S Zeichen in einem String hochstellen? Java Basics - Anfänger-Themen 9
M Erstes Zeichen in einem String in Großbuchstaben wandeln Java Basics - Anfänger-Themen 3
D prüfen ob string nur ascii zeichen enthält Java Basics - Anfänger-Themen 7
vandread Kann in einer String-ArrayList keine Zeichen anhängen Java Basics - Anfänger-Themen 5
E Leerstring bzw String mit x Zeichen erzeugen? Java Basics - Anfänger-Themen 13
B OOP String auf bestimmte Zeichen abfragen Java Basics - Anfänger-Themen 4
I String ohne Zeichen zerlegen lassen Java Basics - Anfänger-Themen 5
E Zeichen in String löschen Java Basics - Anfänger-Themen 15
S String Split ohne Zeichen abzuschneiden Java Basics - Anfänger-Themen 7
Povlsen84 String - Zeichen am Anfang entfernen Java Basics - Anfänger-Themen 11
S Zeichen aus String rausfiltern Java Basics - Anfänger-Themen 4
G Enter-Zeichen aus String ersetzen Java Basics - Anfänger-Themen 5
J String nur mit ASCII-Zeichen Java Basics - Anfänger-Themen 4
S String auf unzulässige Zeichen überprüfen Java Basics - Anfänger-Themen 4
D Zeichen im String ändern -> Fehlersuche Java Basics - Anfänger-Themen 7
G String auf Zeichen überprüfen Java Basics - Anfänger-Themen 6
G HTML Zeichen aus String entfernen? Java Basics - Anfänger-Themen 5
G String vergleichen:Platzhalter für bel. Zeichen Java Basics - Anfänger-Themen 5
M bestimmte Zeichen in String eliminieren Java Basics - Anfänger-Themen 2
G Wieviele Zeichen kann ein String maximal speichern? Java Basics - Anfänger-Themen 3
O String in array einlesen alle x zeichen Java Basics - Anfänger-Themen 15
S Anzahl von Zeichen in einem String suchen und zählen Java Basics - Anfänger-Themen 1
G String ab definiertem Zeichen abschneiden Java Basics - Anfänger-Themen 4
M aus String extrahieren bis zu gewissem Zeichen Java Basics - Anfänger-Themen 7
G String zeichen richtig untreinander Java Basics - Anfänger-Themen 2
G wie mehrere Zeichen in string löschen Java Basics - Anfänger-Themen 3
L String darf nur spezielle Zeichen enthalten Java Basics - Anfänger-Themen 6
H text string alle 100 zeichen in ein 1D array einlesen ? Java Basics - Anfänger-Themen 8
B nach Zeichen suchen dass im string mehrmals vorkommt Java Basics - Anfänger-Themen 3
M String nach einer bestimmten Anzahl von Zeichen trennen Java Basics - Anfänger-Themen 2
M Aus einem String bestimmte zeichen auslesen und ausgeben Java Basics - Anfänger-Themen 8
G die ersten Zeichen eines Strings Vergleichen mit String Java Basics - Anfänger-Themen 6
W String mit Vorgegebenen Zeichen Java Basics - Anfänger-Themen 3
D String kann zeichen nicht lesen Java Basics - Anfänger-Themen 3
D String, erste zeichen löschen Java Basics - Anfänger-Themen 6
D String/StringBuffer mit Zeichen einer Sorte füllen Java Basics - Anfänger-Themen 14
J String - einzelne Zeichen sortieren Java Basics - Anfänger-Themen 14
A ein string zeichen für zeichen lesen Java Basics - Anfänger-Themen 3
G Zeichen an bestimmter Stelle im String einfügen. Java Basics - Anfänger-Themen 4
B String auf bestimmtes Zeichen überprüfen Java Basics - Anfänger-Themen 7
A String um 1 Zeichen kürzen ? Java Basics - Anfänger-Themen 6
M Ein bestimmtes Zeichen in einem String ändern Java Basics - Anfänger-Themen 4
F Zeichen in String ersetzen mit 1.3 Java Basics - Anfänger-Themen 9
T String mit dem Hexwert in normales Zeichen umwandeln? Java Basics - Anfänger-Themen 6
G letztes Zeichen aus einem String Java Basics - Anfänger-Themen 2
G String auf Länge und Zeichen überprüfen Java Basics - Anfänger-Themen 10
R Zeichen von String zählen Java Basics - Anfänger-Themen 5
A String Zeichen löschen in einer bestimmten Reihenfolge Java Basics - Anfänger-Themen 25
N String nach Zeichen ersetzen Java Basics - Anfänger-Themen 6
G String: nach 3. Zeichen char ersetzen Java Basics - Anfänger-Themen 3
O nur bestimmte Zeichen in einem String zählen. Java Basics - Anfänger-Themen 1
Dilandau ascii code von zeichen in string ermitteln? Java Basics - Anfänger-Themen 9
krgewb String mit Datumsangabe in Long umwandeln Java Basics - Anfänger-Themen 2
D String Groß/Kleinschreibung Ignorieren Java Basics - Anfänger-Themen 4
D Map<String, Integer> sortieren und der reinfolge nach die Glieder abfragen Java Basics - Anfänger-Themen 3
J Ähnlichen String in Liste finden Java Basics - Anfänger-Themen 6
Kartoffel_1 String transformation Java Basics - Anfänger-Themen 7
H String-Operation replace() - Zeichenkette verdoppeln Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben