Karakterláncok



String1.java: string karaktereinek elérése
 
public class String1 { 
public static void main(String[] args) { 
 if (args.length==0) { 
  System.out.println("adjon meg egy parancssori parametert!");
  System.exit(1);
  }
 String s=args[0];
 System.out.println("a megadott szoveg: "+s);
 for(int i=0;i<s.length();i++) {
  System.out.println("\t"+"s.charAt("+i+") == '"+s.charAt(i)+"'");
  }
 }
}

1. variáció (String1V1.java): a StringBuffer osztály használata
 
public class String1V1 { 
public static void main(String[] args) { 
 if (args.length==0) { 
  System.out.println("adjon meg egy parancssori parametert!");
  System.exit(1);
  }
 StringBuffer sb=new StringBuffer(args[0]);
 sb.insert(0,"* ");
 sb.append(" *");
 System.out.println("a megadott szoveg: "+sb);
 for(int i=0;i<sb.length();i++) {
  System.out.println("\t"+"sb.charAt("+i+") == '"+sb.charAt(i)+"'");
  }
 }
}



String2.java: string módosítása (kiemelõ karakter beszúrása a karakterek közé)
 
public class String2 { 

public static char KIEMELO='_';

public static String kiemel(String s) { 
 String s1=s.trim();
 StringBuffer sb=new StringBuffer(); 
 for(int i=0; i<s1.length(); i++) {
  if(s1.charAt(i)!=' ') sb.append(s1.charAt(i));
  sb.append(KIEMELO);
  } 
 sb.setLength(sb.length()-1);
 return sb.toString()
 }

public static void main(String[] args) { 
 if (args.length==0) { 
  System.out.println("adjon meg egy parancssori parametert!");
  System.exit(1);
  }
 System.out.println("a megadott parancssori parameter: "+args[0]);
 System.out.println(kiemel(args[0]));
 } 
}

1. variáció (String2V1.java): tetszõleges kiemelõ karaktersorozat megadása
 
public class String2V1 { 

public static String kiemel(String s,String kiemelo) { 
 String s1=s.trim();
 StringBuffer sb=new StringBuffer(); 
 for(int i=0; i<s1.length(); i++) {
  if(s1.charAt(i)!=' ') sb.append(s1.charAt(i));
  sb.append(kiemelo);
  } 
 sb.setLength(sb.length()-kiemelo.length());
 return sb.toString(); 
 }

public static void main(String[] args) { 
 if (args.length==0) { 
  System.out.println("adjon meg egy parancssori parametert!");
  System.exit(1);
  }
 System.out.println("a megadott parancssori parameter: "+args[0]);
 System.out.println(kiemel(args[0],"---"));
 } 
}

2. variáció (String2V2.java): string kiíratása adott hosszon
 
public class String2V2 { 

public static String formaz(String s,int hossz) {
 StringBuffer sb=new StringBuffer(s.trim());
 if(hossz<=0) return new String();
 if(sb.length()>hossz) return sb.substring(0,hossz).toString();
 for(int i=sb.length();i<hossz;i++) {
  sb.append(' ');
  }
 return sb.toString();
 }

public static void main(String[] args) { 
 if (args.length==0) { 
  System.out.println("adjon meg egy parancssori parametert!");
  System.exit(1);
  }
 System.out.println("a megadott parancssori parameter: "+args[0]);
 for(int i=1;i<=15;i++) {
  System.out.println("\t>>"+formaz(args[0],i)+"<<");
  }
 } 
}

3. variáció (String2V3.java): szám kiíratása adott hosszon
 
public class String2V3 { 

public static String formazSzamot(String s,int hossz) {
 StringBuffer sb=new StringBuffer(s.trim());
 if(hossz<=0) return new String();
 if(hossz<sb.length()) {
  sb.setLength(0);
  for(int i=0;i<hossz;i++) {
   sb.append('#');
   }
  }
 else {
  for(int i=sb.length();i<hossz;i++) {
   sb.append(' ');
   }
  }
 return sb.toString();
 }

public static void main(String[] args) { 
 try {
  double x=Double.parseDouble(args[0]); 
  } 
 catch(IndexOutOfBoundsException e) { 
  System.out.println("adjon meg egy parancssori parametert!"); 
  System.exit(1); 
  } 
 catch(NumberFormatException e) { 
  System.out.println("adjon meg egy szamot!"); 
  System.exit(2); 
  } 
 catch(Exception e) { 
  System.out.println("egyeb hiba: "+e); 
  System.exit(3); 
  } 
 System.out.println("a megadott parancssori parameter: "+args[0]); 
 for(int i=1;i<=15;i++) { 
  System.out.println("\t>>"+formazSzamot(args[0].trim(),i)+"<<"); 
  } 
 } 
}



String3.java: string szavakra bontása
 
public class String3 { 
public static void main(String[] args) { 
 if (args.length==0) { 
  System.out.println("adjon meg egy parancssori parametert!");
  System.exit(1);
  }
 System.out.println("a megadott parancssori parameter: "+args[0]);
 String s=args[0].trim();
 int i1=0,i2=s.indexOf(' ');
 System.out.print("a parancssori parameter szavai: { ");
 while(i2>=0) {
  if(i2>i1) System.out.print(s.substring(i1,i2)+"; ");
  i1=i2+1;
  i2=s.indexOf(' ',i1);
  } 
 if(i1<s.length()) System.out.print(s.substring(i1));
 System.out.println(" }");
 } 
}

1. variáció (String3V1.java): string szavakra bontása (az írásjelek figyelmen kívül hagyásával)
 
public class String3V1 {

public static boolean betu(char c) {
 if('A'<=c && c<='Z' || 'a'<=c && c<='z' || (int)c>127) return true;
 else return false;
 }
public static int elsoNemBetuIndexe(String s,int j) {
 int index=-1;
 for(int i=j;i<s.length();i++) {
  if(!betu(s.charAt(i))) {
   index=i;
   break;
   }
  }
 return index;
 }
public static int elsoNemBetuIndexe(String s) {
 return elsoNemBetuIndexe(s,0);
 }
public static String levagIrasjeleket(String s) {
 int i1=0,i2=s.length()-1;
 while(i1<s.length()) {
  if(betu(s.charAt(i1))) break;
  i1++;
  }
 while(0<=i2) {
  if(betu(s.charAt(i2))) break;
  i2--;
  }
 if(i1>i2) return new String();
 else return s.substring(i1,i2+1);
 }

public static void main(String[] args) { 
 if (args.length==0) { 
  System.out.println("adjon meg egy parancssori parametert!");
  System.exit(1);
  }
 System.out.println("a megadott parancssori parameter: "+args[0]);
 String s=levagIrasjeleket(args[0]);
 int i1=0,i2=elsoNemBetuIndexe(s);
 System.out.print("a parancssori parameter szavai: { ");
 while(i2>=0) {
  if(i2>i1) System.out.print(s.substring(i1,i2)+"; ");
  i1=i2+1;
  i2=elsoNemBetuIndexe(s,i1);
  } 
 if(i1<s.length()) System.out.print(s.substring(i1));
 System.out.println(" }");
 } 
}


Boda István, 2005 szeptember 10.