Domain-spiegel Aufgabe erklären?

runnerdo

Grünschnabel
Hi
Also wir solten für die schule eine Aufgabe machen.Man sollte wenn man hermann.maier@students.uni-linz.ac.at eingibt soll at.ac.linz-uni.students ruaskommen also die wörter in verkehrter reinfolge ab den @.Hab jetzt von nen freund folgende Lösung geschickt bekommen der wusste aber auch nicht ob das richtig und komplett ist.
Könnt ihr mir das erklären am besten mit // komentiert zurückschicken und schauen ob das richtig ist.Die erklärung ist sehr wichtig da ich es ja auch verstehen muss.
Code:
 public class A2 {
 static String domain(String adr) {
 		StringBuffer res = new StringBuffer();
 		adr = adr.substring(adr.indexOf('@') + 1);
 		int pos = adr.lastIndexOf('.');
 		while (pos >= 0) {
 			res.append(adr.substring(pos+1));
 			res.append('.');
 			adr = adr.substring(0, pos);
 			pos = adr.lastIndexOf('.');
 		}
 		res.append(adr);
 		return res.toString();
 	}
 	
 	public static void main(String args[]) {
 		In.open("input.txt");
 		String adr = In.readWord();
 		while (In.done()) {
 			Out.println(adr + " => " + domain(adr));
 			adr = In.readWord();
 		}
 		In.close();
 	}
 }
 
Hallo!

Entweder so:
Code:
package de.tutorials;
 public class FQDNReverseExample {
 	/**
 	 * @param args
 	 */
 	public static void main(String[] args) {
 		String address = "hermann.maier@students.uni-linz.ac.at";
 		String fqdn = address.substring(address.indexOf('@')+1);
 		System.out.println(fqdn);
 		String[] fqdnFragments = fqdn.split("\\.");
 		StringBuffer fqdnReverse = new StringBuffer();
 		for (int i = fqdnFragments.length - 1; i >= 0; i--) {
 		    fqdnReverse.append(fqdnFragments[i]).append(i > 0 ? "." : "");
 		}
 		System.out.println(fqdnReverse);
 	}
 }

Oder auch so:
Code:
  package de.tutorials;
  
  import java.util.ArrayList;
  import java.util.Arrays;
  import java.util.Collections;
  import java.util.List;
  
  public class FQDNReverseExample {
  
  	/**
  	 * @param args
  	 */
  	public static void main(String[] args) {
  		String address = "hermann.maier@students.uni-linz.ac.at";
  		String fqdn = address.substring(address.indexOf('@') + 1);
  		System.out.println(fqdn);
  		String[] fqdnFragments = fqdn.split("\\.");
  		List list = new ArrayList(Arrays.asList(fqdnFragments)) {
  			public String toString() {
  				String str = super.toString();
 		 	return str.substring(1, str.length() - 1).replaceAll(", ",
 						"\\.");
  			}
  		};
  		Collections.reverse(list);
  		System.out.println(list);
  	}
  }

Ausgabe:
Code:
    students.uni-linz.ac.at
    at.ac.uni-linz.students

Gruß Tom
 
Zurück