String substring

frostkrieger

Mitglied
Moin erstmal, also ich habe folgendes Programm allerdings weis ich nicht genau was die folgende Zeile wirklich macht. Könnte mir das Jemand bitte erklären. MIt der auskommentierten Zeile oben drüber wo quasi eigentlich dasselbe steht kann ich nicht soviel anfangen.

Danke schonmal im Vorraus.???:L

Java:
if(zeile.contains("<name>")) {
						name=zeile.substring(10,(zeile.length()-7));


Java:
import java.io.*;

	 class Versuch7{
		
			public static void main(String args[]){
	                       
                           try {		// umschließt einen codeabschnitt und fängt mögliche fehler im codeabschnitt ab
				
				BufferedReader buffRead = new BufferedReader(new FileReader("zitat.xml"));//einlesen einer datei
				PrintWriter printWrit = new PrintWriter(new FileWriter ("neuzitat.txt"));//schreiben einer datei
				
				String name=null;		//wird als string initialisiert und verweist auf kein objekt
  				String beschreibung=null;
  				String zitat=null;
  				String zeile=null;
				
				
							//anfang schleife
				while((zeile = buffRead.readLine()) != null) { 
					
					if(zeile.contains("<zitat>")) {
						zitat=zeile.substring(11,(zeile.length()-8));//beim 11.buchstaben anfangen, komplette string bis auf die letzten 8 buchstaben übernehmen
					
						printWrit.println("\""+zitat+"\"");
						printWrit.println(name+", "+beschreibung);
						printWrit.println(); 
					}	
					
					if(zeile.contains("<name>")) {
						name=zeile.substring(10,(zeile.length()-7)); 
					}
						
					
						if(zeile.contains("<beschreibung>")) {
						beschreibung=zeile.substring(18,(zeile.length()-15)); 
					
					} 
			 	}		//ende schleife
                                
					printWrit.close();
				
					buffRead.close();
                            }	//falls ein fehler auftritt, springt die codeausführung in den catchblock
  				  catch (IOException e){     //e is object name of IOException class
 				     System.out.println("Fehler beim Einlesen der Datei!");
  				  }

    			}
 
Zuletzt bearbeitet von einem Moderator:
Villeicht sollte man code nicht klauen, wenn man ihn nicht versteht.

http://www.java-forum.org/java-basics-anfaenger-themen/117794-lesen-schreiben-dateien-java.html

Die Zeile, welche du nicht verstehst, ist wohl falsch übernommen, ich denke da sollte stehen

Java:
if(zeile.contains("<name>")) {
                        name=zeile.substring(6,(zeile.length()-7));

Naja und dann wie man es lesen würde, wenn Zeile den Tag <name> beinhaltet, wird versucht den Text von z.b. <name>Lena<\name> auszuschneiden, was hier Lena wäre.
 
Verstehe nicht was die Frage ist. Wenn du wissen willst was
Code:
contains
macht, dann schau doch in der API nach
 
> MIt der auskommentierten Zeile oben drüber wo quasi eigentlich dasselbe steht
gibt es nicht?

----

du hast absolut keine Vorstellung was die Zeile macht?
ist dir das Gesamtprogramm nicht klar, dass da offensichtlich ein langer String analysiert wird bzw. zeile ist einer Zeile davon,
und dann in speziell dieser Zeile offensichtlich eine Variable name mit einem String befüllt wird,
bestimmt nicht die ganze Zeile sondern eben 'substring' was selbsterklärend sein sollte bzw. notfalls in der API nachzuschlagen ist

wie kann bitte dieser Gesamtzusammenhang nicht klar sein?
oder wenn doch (was 5 Zeilen von dir wert gewesen wäre, nicht 5 Zeilen von mir, Mist..) was ist dann deine Detailfrage?
 
Also ich hab hier freundlich gefragt und dann wird man erstmal direkt dumm angemacht.... kein Kommentar. Desweiteren ist da garnichts geklaut ich habe mir nur Infos beschafft um das Programm zu vervollständigen, geschrieben ist es selber. Und wenn man dann nicht genau weis warum das so ist sollte ja wohl klar sein. Aber erstmal direkt unterstellen das es geklaut ist, ist ja mal mehr als frech....

Es geht darum warum da die Werte 10 und -7 stehen?
 
> MIt der auskommentierten Zeile oben drüber wo quasi eigentlich dasselbe steht
gibt es nicht?

----

du hast absolut keine Vorstellung was die Zeile macht?
ist dir das Gesamtprogramm nicht klar, dass da offensichtlich ein langer String analysiert wird bzw. zeile ist einer Zeile davon,
und dann in speziell dieser Zeile offensichtlich eine Variable name mit einem String befüllt wird,
bestimmt nicht die ganze Zeile sondern eben 'substring' was selbsterklärend sein sollte bzw. notfalls in der API nachzuschlagen ist

wie kann bitte dieser Gesamtzusammenhang nicht klar sein?
oder wenn doch (was 5 Zeilen von dir wert gewesen wäre, nicht 5 Zeilen von mir, Mist..) was ist dann deine Detailfrage?

Der gesamtzusammenhang ist klar es werden aus einer xml datei strings gelesen und diese in eine neu erstellte txt geordnet geschrieben.
 
...geschrieben ist es selber....
Es geht darum warum da die Werte 10 und -7 stehen?

Wie? Du hast es selber geschrieben und versuchst jetzt zu verstehen, warum du es geschrieben hast? :bahnhof:

Es wird halt am Anfang und am Ende etwas abgeschnitten. Wenn du dir deinen String anschaust und die Zeichen zählst, dann solltest du auch sehen was da passiert.
 
Dann möchte ich mich herzlich entschuldigen frostkrieger. Student26 hatte nur genau das gleiche Programm, offenbar hattet ihr eine Vorlage oder vergleichbares bekommen.
 
Okay das hab ich soweit verstanden und auch soweit gedacht. Nur find ich die Tags name und ... nicht in der XML Datei woher soll das Programm das dann also wissen was ein Name ist und sonst was...

Das Programm läuft soweit und ist auch korrekt so.
 
Das hier reinzukopieren würden den rahmen sprengen. Aber kanns sein das ich die Tags nur in nem richtigen Editor sehe? Denn wenn ich die datei öffne kommt halt nur stinknormaler Text. Weil dann wärs klar.
 
Das könnte sein, glaub ich aber weniger.
Aber um sicher zu gehen, mach das XML-file mal mit dem NOTEPAD auf, der kann zumindest in der üblichen Version 1 keine Tags interpretieren.
 

Neue Themen


Zurück
Oben