So nun zu meinem Problem. Ich schätze der Code an und für sich ist selbsterklärend, darum möchte ich auch nicht weiter drauf eingehen wofür er da ist und was er tun soll.
Mein Problem ist das 'printed_arr' in der function 'output' 98Keys zuviel hat. Ich habe ein wenig rumgespielt und es hat sich herausgestellt das printed_arr immer genauso viele Keys hat wie input_arr. Die Frage wieso hat dieser 100 wenn er aber über den Parameter einen Array mit 2 Keys übermittelt bekommt?
Ich hoffe ich bin hier richtig und ihr könnt mich auf den Fehler aufmerksam machen. Den ich sitze schon seit längeren an diesem Problem und weiß leider nicht woran es liegt.
So ok hab versucht aus dem was du schriebst was herauszufinden und ich habe zwar keine Lösung für mein aktuelles Problem gefundne doch weiß ich jetzt was du meinst. Die Frage ist jetzt nur wie löse ich das am elegantesten mit "Anfänger"-Methoden?
So ok ich habe das Problem gelöst.
Statt new_arr = arr; (new_arr wird zu referenz von arr, dadurch auch gleiche eigenschaften) habe ich eine for-Schleife eingebaut. Ist zwar nicht elegant aber es funktioniert fürs erste.
Danke nochmal an sicLotus für den spärlichen, aber doch hilfreichen Ansatz.
Lösung meines Problems:
Java:
publicclassCharArrayOps{/**
* @param args
*/publicstaticvoidmain(String[] args)throwsException{// TODO Auto-generated method stubint[] input_arr =newint[100];int i =0;boolean eingabe =true;System.out.println("Bitte geben sie eine Testzeile ein:");while(eingabe ==true){
input_arr[i]=System.in.read();switch(input_arr[i]){case13: eingabe =false;default: i++;;}}System.out.println("input_arr hat "+(input_arr.length)+"Keys");contains(input_arr);}publicstaticvoidcontains(int[] arr){int i =0;boolean transfer =true;while(transfer ==true){switch(arr[i]){case13: transfer =false;default: i++;}}int[] new_arr =newint[i-1];for(int j=0; j<(i-1); j++){
new_arr[j]= arr[j];}System.out.println("new_arr hat "+ new_arr.length +"Keys");output(new_arr);}publicstaticvoidoutput(finalint[] printed_arr){System.out.println("printed_arr hat "+ printed_arr.length +"Keys");for(int i=0; i<printed_arr.length; i++)System.out.print((char)printed_arr[i]);System.out.println();}}