Alternative zu replaceAll (jdk < 1.4)

Status
Nicht offen für weitere Antworten.
P

Persuader_Guest

Gast
Wir verwenden in der Schule noch ein altes JDK 1.3, jedoch benötige ich dringend die Methode replaceAll, welche aber erst ab Version 1.4 verfügbar ist um einen "\" in einen "/" umzuwandeln...
Kann mir jemand dringend helfen, wie ich das umgehen könnte?
 

Mick

Bekanntes Mitglied
Das Problem kenn ich ;)

Code:
    public static String replaceAll(String text, String substitute, String replacement) {
        int i; 
        while ((i = text.indexOf(substitute)) != -1) {
            text = text.substring(0, i) + replacement +
                    text.substring(i + substitute.length());
        }
        return text;
    }

Grüße,
Mick
 

akira

Bekanntes Mitglied
Hi,

wenn Du nur einzelne Zeichen ersetzen willst, sollte es da gute alte

Code:
String.replace(char old, char new)

tun.
 
P

Persuader_Guest

Gast
Ok, also sollte

Code:
    String substitute = "\\\\";
    String replacement = "/";
    public static String replaceAll(String choosenFilePath, String substitute, String replacement) {
      int i;
      while ((i = choosenFilePath.indexOf(substitute)) != -1) {
         choosenFilePath = choosenFilePath.substring(0, i) + replacement +
         choosenFilePath.substring(i + substitute.length());
      }
    return choosenFilePath;
    
    }
funktinieren?

Tuts aber irgendwie nicht... und wenn ich nach "return choosenFilePath" ein "System.out.println( choosenFilePath );" reinhaue sagt er mir "unreachable statement"... :(
 
B

bygones

Gast
du kannst nicht nach einem return statement noch weiter befehle schreiben. Bei return wird die Methode verlassen !
D.h. das System.out.println() muss in die aufrufende Methode !
 
R

Roar

Gast
ach ne. wie soll das denn auch ausgegeben werden? anch einem return ist die methode zuende
 
P

Persuader_Guest

Gast
Bin ne java-/programmier-niete sorry ;)

Aber ich krieg das irgendwie einfach nicht hin, muss aber in 2 stunden damit fertig sein.... jedenfalls mein code sieht so aus:

Code:
    public static void playAudio() {
       
      File audioFilePath = new File( choosenFilePath );
   
        try {
          AudioInputStream audioInputStream = AudioSystem.getAudioInputStream( audioFilePath );
          AudioFormat af     = audioInputStream.getFormat();
          int size           = (int) (af.getFrameSize() * audioInputStream.getFrameLength());
          //long lenght         = audioInputStream.getMicrosecondLength();  
          byte[] audio       = new byte[size];
          DataLine.Info info = new DataLine.Info(Clip.class, af, size);
          audioInputStream.read(audio, 0, size);
          Clip clip = (Clip) AudioSystem.getLine(info);
          clip.open(af, audio, 0, size);

              System.out.print( "File to play: " );
              System.out.println( choosenFilePath );
              clip.start();

        } catch(Exception e) { e.printStackTrace(); }

    }
Nun ist die Variable choosenFilePath aber noch im format C:\irgendwas\irgendwas.wav und soll halt umgewnandelt werden in C:/irgendwas/irgendwas.wav aber ich schaff das einfach nicht...
Wo müsste ich denn das ganze replaceAll-Zeugs anwenden damit das funktioniert? :(

choosenFilePath muss ja noch vor der dritten zeile umgewandelt werden...
 

akira

Bekanntes Mitglied
Warum machst Du es nicht einfach so
Code:
String path = path.replace('\\','/');
?
 
G

Guest

Gast
akira hat gesagt.:
Warum machst Du es nicht einfach so
Code:
String path = path.replace('\\','/');
?
weils damit irgendwie auch nciht klappt

habe gelesen mit
choosenFilePath = choosenFilePath.replace('\\\\','/');
solls gehen aber das hat auch nich geklappt :(
 
B

bygones

Gast
Code:
String file="C:\\irgendwas\\irgendwas.wav";
String endFile = "C:/irgendwas/irgendwas.wav";
String s = file.replace('\\','/');
System.out.println(s.equals(endFile));
ergibt bei mir true
 

Mick

Bekanntes Mitglied
mit

Code:
choosenFilePath = choosenFilePath.replace('\\\\','/');

ersetzt Du auch ein \\ durch /
wenn Du \ durch / ersetzen willst genügt ein Aufruf mit \\

war das jetzt verwirrend? ???:L

Grüße,
Mick
 
G

Guest

Gast
deathbyaclown hat gesagt.:
Code:
String file="C:\\irgendwas\\irgendwas.wav";
String endFile = "C:/irgendwas/irgendwas.wav";
String s = file.replace('\\','/');
System.out.println(s.equals(endFile));
ergibt bei mir true
hmmmm ja dann scheint es wohl doch zu klappen.
kompilieren funktioniert dann ja auch problemlos, doch wenn ich die funktion im progamm starte erscheint folgende meldung:

Exeption occured during event dispatching:
java.lang.NullpointerExeption at blablablabla
 
R

Roar

Gast
deine NullPointer hat aber mit dem replace code nichts zu tun, das ist dann wohl n andere fehler in deinem code.
 
P

Persuader_Guest

Gast
Ahhh ich habe gerade bemerkt, dass Problem ist ein anderes... \ wird richtig durch / ersett aber er kann denn neuen String danach irgendwie nicht richtig verarbeiten...
Wenn ich nun
System.out.println( choosenFilePath );
mache sagt der mir:
c:/datei.wav

doch abspielen kann ich das File danach nicht (oben genannte fehlermeldung, KEIN syntax-error)

Wenn ich aber direkt im Code definiere
String choosenFilePath = "c:/datei.wav";
dann kann er die datei abspielen...

woran kann das liegen?

abspielen tu ich die datei so:

Code:
File audioFilePath = new File( choosenFilePath );
   
        try {
          AudioInputStream audioInputStream = AudioSystem.getAudioInputStream( audioFilePath );
          AudioFormat af     = audioInputStream.getFormat();
          int size           = (int) (af.getFrameSize() * audioInputStream.getFrameLength());
          byte[] audio       = new byte[size];
          DataLine.Info info = new DataLine.Info(Clip.class, af, size);
          audioInputStream.read(audio, 0, size);
          Clip clip = (Clip) AudioSystem.getLine(info);
          clip.open(af, audio, 0, size);
                                        
              // PLAY FILE
              System.out.println("Clip wird gestartet\n");
              clip.start();

 
        } catch(Exception e) { e.printStackTrace(); }
wie ja schon weiter oben erwähnt...
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
F Gibt es mittlerweile eine Alternative zu DaisyDiff Allgemeine Java-Themen 2
F Streams als Alternative für dieses Problem ? Allgemeine Java-Themen 15
Zrebna Alternative Darstellung eines Codesnippets Allgemeine Java-Themen 33
W Alternative für Threads Allgemeine Java-Themen 6
Thallius Alternative für SwingWorker Allgemeine Java-Themen 5
J Suche Alternative zu Jasper Reports Allgemeine Java-Themen 4
M Suche Alternative zu JFreeChart Allgemeine Java-Themen 11
D Konstruktor - jedes Objekt einzeln erzeugen - alternative? Allgemeine Java-Themen 8
M DAOs veraltet - was ist die Alternative? Allgemeine Java-Themen 13
MiMa Array umbau oder Alternative? Allgemeine Java-Themen 5
C Alternative zu NetworkX in Java Allgemeine Java-Themen 1
M Alternative zur Serialisierung.. Protobuf? Allgemeine Java-Themen 9
B Alternative zu nebenläufigen Prozessen Allgemeine Java-Themen 4
BonoBoo Alternative zum endlosen Instanzieren Allgemeine Java-Themen 2
F Platzsparende Alternative zu .txt-Dateien Allgemeine Java-Themen 12
E Gewollte Endlosschleife unterbrechen oder Alternative gesucht Allgemeine Java-Themen 2
F Alternative sun.jdbc.odbc.JdbcOdbcDriver (Access Datenbank) Allgemeine Java-Themen 2
F alternative zu "JPEGImageDecoderImpl" Allgemeine Java-Themen 2
T Timer oder Alternative? Allgemeine Java-Themen 3
G Alternative zu .properties Dateien Allgemeine Java-Themen 20
S Alternative zu SortedMap? Allgemeine Java-Themen 8
H Alternative zu Stack Allgemeine Java-Themen 3
pikay Jar2Exe Alternative? Allgemeine Java-Themen 17
E javax.comm: Suche eine open source Alternative zu rxtx Allgemeine Java-Themen 8
H Alternative if Schreibweise mit ? Allgemeine Java-Themen 10
G suche Property alternative Allgemeine Java-Themen 4
H Wie schön oder unschön ist dieser code - alternative ? Allgemeine Java-Themen 5
E Viele if Abfragen auf viele Strings --> Alternative zu if Allgemeine Java-Themen 8
G libext Alternative? Allgemeine Java-Themen 5
S Alternative zu Robot (wegen Umlauten) Allgemeine Java-Themen 13
foobar Alternative zu JavaHelp gesucht Allgemeine Java-Themen 2
I Alternative zu getClass().getResourceAsStream() ? Allgemeine Java-Themen 9
D System.setProperty alternative Allgemeine Java-Themen 4
J alternative zu rsh ? Allgemeine Java-Themen 5
K KeyListener-Alternative ohne anfängliches Delay ? Allgemeine Java-Themen 5
G Alternative zu split() Allgemeine Java-Themen 3
K Alternative zu JNI Allgemeine Java-Themen 3
M Alternative zu Thread : stop() ? Allgemeine Java-Themen 10
Tommy Nightmare String.replaceAll(...) fehlerhaft? Allgemeine Java-Themen 3
N Methoden "a.b".replaceAll(".", "$") Allgemeine Java-Themen 8
N String.replaceAll Problem Allgemeine Java-Themen 5
K replaceAll bei sehr großen String Allgemeine Java-Themen 3
J replaceAll , "[", "]" & regex Allgemeine Java-Themen 12
Airwolf89 ReplaceAll, kann xml- Tag nicht aus String ausschneiden Allgemeine Java-Themen 3
A Probleme mit replaceAll Allgemeine Java-Themen 3
D replaceAll => no such java.lang.NoSuchMethodError Allgemeine Java-Themen 5
Daniel_L RegEx und replaceAll - Probleme mit escapen des Suchbegriffs Allgemeine Java-Themen 4
D Regex-Problem mit replaceAll Allgemeine Java-Themen 5
G String.replaceall - mehrere Zeichen durch eines ersetzen Allgemeine Java-Themen 5
S Geschwindigkeitsproblem bei String.replaceAll Allgemeine Java-Themen 2
Daniel_L Frage zu replaceAll und regulären Ausdrücken Allgemeine Java-Themen 15
T String.replaceAll - warum PatternSyntaxException? Allgemeine Java-Themen 4
F [ und mit replaceAll() ersetzen Allgemeine Java-Themen 2
G replaceAll() Allgemeine Java-Themen 4
@ String replaceAll(" ", ""); Allgemeine Java-Themen 2
T ReplaceAll (außer) Allgemeine Java-Themen 11
karambara ReplaceAll und Backslashes Allgemeine Java-Themen 3
P replaceAll und "\" durch "/" ersetzen Allgemeine Java-Themen 15
P ReplaceAll ersetzt nicht bzw. möchte verketteten string Allgemeine Java-Themen 4
G replaceAll Allgemeine Java-Themen 2
R String.replaceAll $lt; ersetzen Allgemeine Java-Themen 3
G ReplaceAll problem Allgemeine Java-Themen 7

Ähnliche Java Themen

Neue Themen


Oben