Karakterláncok rendezése



String4.java: stringek összehasonlítása
 
public class String4 {

 public static String min(String s,String t) { 
  return (s.compareTo(t)<0 ? s : t); 
  } 
 public static String max(String s,String t) { 
  return (s.compareTo(t)>0 ? s : t); 
  } 

public static void main(String[] args) { 
 if (args.length<=2) { 
  System.out.println("Maskor adjon meg harom parancssori parametert!"); 
  System.exit(1);
  }
 String s,t,u;
 s=min(args[0],args[1]); 
 t=max(args[0],args[1]); 
 u=args[2]; 
 System.out.println("A legkisebb parameter:  "+min(s,u)); 
 System.out.println("A legnagyobb parameter: "+max(t,u)); 
 } 
}

1. variáció: String4V1.java
 
public class String4V1 {
public static void main(String[] args) { 
 if (args.length<2) { 
  System.out.println("Maskor adjon meg ket parancssori parametert!"); 
  System.exit(1);
  }
 if(args[0].equals(args[1])) {
  System.out.println("A ket parameter megegyezik.");
  System.exit(0);
  }
 String s,t;
 if(args[0].compareTo(args[1])<0) {
  s=args[0];
  t=args[1];
  }
 else {
  s=args[1];
  t=args[0];
  }
 System.out.println("A parameterek abc rendben:");
 System.out.println("\t"+s); 
 System.out.println("\t"+t); 
 } 



String5.java: stringek rendezése
 
public class String5 {

public static void kiir(Object[] sz) {
  for(int i=0;i<sz.length;i++) System.out.println("A(z) "+(i+1)+". ertek: "+sz[i]);
  }

public static void cserel(Object[] sz,int i,int j) {
 if(i<0 || i>=sz.length || j<0 || j>=sz.length || i==j) return;
 Object k=sz[i];
 sz[i]=sz[j];
 sz[j]=k;
 }

public static void legkisebb(Comparable[] sz,int i) {
 if(sz.length==0) return ;
 if(i<0 || i>=sz.length) return;

 for(int j=i+1;j<sz.length;j++) {
  if(sz[i].compareTo(sz[j])>0) cserel(sz,i,j);
  }
 }

public static void main(String[] args) {
 if (args.length<2) { 
  System.out.println("Maskor adjon meg legalabb ket parancssori parametert!"); 
  System.exit(1);
  }
 System.out.println("A parameterek rendezes elott:");
 kiir(args);
 for(int i=0;i<args.length-1;i++) {
  legkisebb(args,i);
  }
 System.out.println("A parameterek rendezes utan:");
 kiir(args);
 }
}

1. variáció: String5V1.java
 
public class String5V1 extends String5 {

public static void rendez(Comparable[] sz) {
 if(sz.length==0) return ;
 for(int i=0;i<sz.length-1;i++) {
  legkisebb(sz,i);
  }
 }

public static void main(String[] args) {
 if (args.length<2) { 
  System.out.println("Maskor adjon meg legalabb ket parancssori parametert!"); 
  System.exit(1);
  }
 System.out.println("A parameterek rendezes elott:");
 kiir(args);
 rendez(args);
 System.out.println("A parameterek rendezes utan:");
 kiir(args);
 }
}



String6.java: stringek rendezése a java.util csomag eljárásaival
 
import java.util.*;

public class String6 {
public static void main(String[] args) {
 if (args.length<2) { 
  System.out.println("Maskor adjon meg legalabb ket parancssori parametert!"); 
  System.exit(1);
  }
 List list=Arrays.asList(args);
 System.out.println("A parameterek rendezes elott:");
 String5.kiir(args);
 Collections.sort(list);
 System.out.println("A parameterek rendezes utan:");
 String5.kiir(args);
 }
}

1. variáció: String6V1.java
 
import java.util.*;

public class String6V1 {
public static void main(String[] args) {
 Keres k=new Keres();
 k.kiir();
 Integer[] tomb=new Integer[Keres.N];
 for(int i=0;i<tomb.length;i++) tomb[i]=new Integer(k.kulcs[i]);
 List list=Arrays.asList(tomb);
 System.out.println("A parameterek rendezes elott:");
 System.out.println(list);
 Collections.sort(list);
 System.out.println("A parameterek rendezes utan:");
 System.out.println(list);
 }
}

2. variáció: String6V2.java
 
import java.util.*;

public class String6V2 implements Comparable {
private String value;

public String6V2(String s) {
 value=s;
 }
public String toString() {
  return value;
  }
public int compareTo(Object o) {
 String6V2 sv=(String6V2)o;
 int i=value.length()-sv.value.length();
 if(i!=0) return i;
 else return value.compareTo(sv.value);
 }

public static void main(String[] args) {
 if (args.length<2) { 
  System.out.println("Maskor adjon meg legalabb ket parancssori parametert!"); 
  System.exit(1);
  }
 String6V2[] tomb=new String6V2[args.length];
 for(int i=0;i<args.length;i++) tomb[i]=new String6V2(args[i]);
 List list=Arrays.asList(tomb);
 System.out.println("A parameterek rendezes elott:");
 String5.kiir(tomb);
 Collections.sort(list);
 System.out.println("A parameterek rendezes utan:");
 String5.kiir(tomb);
 }
}



String7.java: rendezés saját eljárással különbözõ szempontok szerint (ismétlés)
 
public class String7 extends String5V1 {

public static void main(String[] args) {
 if (args.length<2) { 
  System.out.println("Maskor adjon meg legalabb ket parancssori parametert!"); 
  System.exit(1);
  }
 int i;
 String6V2[] tomb=new String6V2[args.length];
 for(i=0;i<args.length;i++) tomb[i]=new String6V2(args[i]);

 System.out.println("A parameterek rendezes elott:");
 kiir(tomb);
 rendez(tomb);
 System.out.println("A parameterek rendezes utan:");
 kiir(tomb);
 }
}

1. variáció: String7V1.java
 
public class String7V1 extends String5V1 {

public static void main(String[] args) {
 Keres k=new Keres();
 k.kiir();
 int n=Keres.N;
 if(n>5) n=5;
 System.out.println("A rendezendo parameterek szama: "+n);
 Integer[] tomb=new Integer[n]; 
 for(int i=0;i<n;i++) tomb[i]=new Integer(k.kulcs[i]); 
 System.out.println("A parameterek rendezes elott:");
 kiir(tomb);
 rendez(tomb);
 System.out.println("A parameterek rendezes utan:");
 kiir(tomb);
 }
}



Áttekintõ táblázat
 
Funkció String StringBuffer
összefûzés + StringBuffer append(boolean)
StringBuffer append(char)
StringBuffer append(double)
StringBuffer append(float)
StringBuffer append(int)
StringBuffer append(long)
StringBuffer append(Object)
StringBuffer append(String)
hossz lekérdezése int length() int length()
karakter lekérdezése char charAt(int) char charAt(int)
összehasonlítás (<,=,>) int compareTo(String)
int compareToIgnoreCase(String)
összehasonlítás (=) boolean equals(String)
boolean equalsIgnoreCase(String)
részlánc összehasonlítása (=) boolean startsWith(String)
boolean endsWith(String)
részlánc képzése String substring(int)
String substring(int,int)
String substring(int)
String substring(int,int)
karakter vagy részlánc keresése int indexOf(String)
int indexOf(String,int)
beszúrás StringBuffer insert(int,boolean)
StringBuffer insert(int,char)
StringBuffer insert(int,double)
StringBuffer insert(int,float)
StringBuffer insert(int,int)
StringBuffer insert(int,long)
StringBuffer insert(int,Object)
StringBuffer insert(int,String)
részlánc törlése StringBuffer delete(int,int)
hossz beállítása void setLength(int)
részlánc cseréje StringBuffer replace(int,int,String)
karakter cseréje void setCharAt(int,char)
karakterek cseréje String replace(char,char)
kis- és nagybetûk cseréje String toLowerCase()
String toUpperCase()
szóközök levágása String trim()
 
lila szín: mûvelet
zöld szín: függvény
kék szín: eljárás
karakterláncokon végezhetõ fontosabb mûveletek, eljárások és függvények


Boda István, 2007 április 23.