Προς το περιεχόμενο

απορια στη Java


nrkmaiden

Προτεινόμενες αναρτήσεις

Κανω μια ασκηση σε Java με δεδομενη εκφωνηση και κωδικα και δε μπορω να καταλαβω τι κανει μια εντολη :

>str = (new String( B ) ).trim();

 

μπορει καποιος να βοηθησει.....

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Κανω μια ασκηση σε Java με δεδομενη εκφωνηση και κωδικα και δε μπορω να καταλαβω τι κανει μια εντολη :

>str = (new String( B ) ).trim();

 

μπορει καποιος να βοηθησει.....

Φαντασου το σαν δυο βηματα, δηλαδη:

>str = new String( B );
str = str.trim();

 

ΥΓ. Η μεθοδος trim() αφαιρει τα "κενα" απ' την αρχή ή και το τέλος που μπορει να περιεχει to calling object. Δηλαδη αν κανω:

>s = " hello world  ".trim();

Το s θα ειναι "hello world".

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Αφαιρεί τα κενά από την αρχή και το τέλος ενός String

 

π.χ.

 

>
       String str;
       
       String B = " TEST ";
       
       str = (new String( B ) ).trim();
       
       
       
       System.out.println(str + "TEST");

 

Αυτό βγάζει:

 

>TESTTEST

 

αντί για

 

> TEST TEST

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • 2 εβδομάδες αργότερα...

Για να μην ανοιγω αλλο θεμα θα συνεχισω αυτο...

 

Θελω να φτιαξω ενα προγραμματακι που διαβαζει απο ενα αρχειο ενα String αντικαθιστα τα κενα με @ και στο τελος κα8ε σειρας

εισαγει μια νεα σειρα κενη και γραφει το αποτελσμα σε ενα νεο αρχειο....

 

το προβλημα μου ειναι οτι στο νεο αρχειο δεν εμφνιζονται οι κενες σειρες καθολου...

 

δηλαδη με εισοδο

this is

a

test

παιρνω εξοδο

this@@@@is@a@@@@@@@test....

τι εχω κανει λαθος??

 

 

 

Κωδικας:

 

 

>import java. io. *;

public class file_e{
   public static void main(String[] args){
       //file src
       try{
           FileReader filein   = new FileReader("test.txt");
           System.out.println("file found");
           BufferedReader buff  = new BufferedReader(filein);
           FileWriter fileout = new FileWriter("apot.txt");
           
           String str ="s";
           while(str != null){ 
             str = buff.readLine();
              try{ 
                  String new_str = str.replace(" ","@");
                  String final_string = "\n"+new_str;//<---εδω υποτιθεται οτι εισαγω καινουρια σειρα
                  System.out.println(final_string);
                  fileout.write(final_string);
                 }//try
              catch( NullPointerException npe){
                  //System.out.println("ErrOR-->" + npe.toString());
              }//catch
           }//while
          
           fileout.close();
           
          
       }//try
       
       catch (FileNotFoundException e)
       { 
           System.out.println("ErrOR-->" + e.toString());
       }//catch1
       catch (IOException io){
            System.out.println("ErrOR-->" + io.toString());
       }

       
   }//main

}//class file_editor

 

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Αυτό:

 

>FileReader filein   = new FileReader("test.txt");
           System.out.println("file found");
           BufferedReader buff  = new BufferedReader(filein);
           FileWriter fileout = new FileWriter("apot.txt");

 

είναι καλύτερα έτσι:

 

>FileReader filein   = new FileReader("test.txt");
           System.out.println("file found");
           BufferedReader buff  = new BufferedReader(filein);
           File fileOut = new File ("apot.txt");
           PrintWriter pw = new PrintWriter(fileOut);

 

και αυτό:

 

>
                  String new_str = str.replace(" ","@");
                  String final_string = "\n"+new_str;//<---εδω υποτιθεται οτι εισαγω καινουρια σειρα
                  System.out.println(final_string);
                  fileout.write(final_string);

 

γίνεται:

 

>String new_str = str.replace(" ","@");
                  System.out.println(new_str);
                  pw.println(final_string);
                  pw.println(); // η νέα σειρά

 

Όσο γιατί δεν δουλεύει αυτό που έχεις γράψει:

 

>
                  String final_string = "\n"+new_str;//<---εδώ βάζεις νέα γραμμή πριν το string 
                  System.out.println(final_string);//<--- εδώ φαίνεται εντάξει γιατί αυτή η μέθοδος βάζει από μόνη της \n
                  fileout.write(final_string);//<-- αυτή εδώ δεν βάζει

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • 2 εβδομάδες αργότερα...

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...