Hallo zusammen,
ich habe ein kleines Problem und zwar möchte ich ein Array, das mit char gefüllt ist, die aber ALLE Ziffern sind, in einen int-Array umwandeln.
Hier ist erstmal der Quellcode:
In der Methode verEntSchl lese ich ein Wort oder eine Zahlenfolge ein. Diesen String wandle ich in einen char-Array um, damit ich jedes Zeichen (egal ob Buchstabe oder Zahl) auf einer Stelle im Array hab.
Danach wird via if überprüft, ob es sich um Zahlen handelt, wenn das der Fall ist, brauche ich den Inhalt des Array aber als int und nicht mehr als char, damit ich damit weiterrechnen kann.
Ich hab gedacht, ich könnte mit Integer.parseInt arbeiten, aber da erscheint die Fehlermeldung, dass dies nur bei String funktioniert...
Kann mir jemand weiterhelfen?
ich habe ein kleines Problem und zwar möchte ich ein Array, das mit char gefüllt ist, die aber ALLE Ziffern sind, in einen int-Array umwandeln.
Hier ist erstmal der Quellcode:
Code:
package lernsituation_3;
import java.io.*;
class Schluessel {
private char [][]schluessel= new char [5][6];
private static void printArray(char[][] a)
{
for(int i = 0; i < a.length; i++)
{
for(int j = 0; j < a[i].length; j++)
{
if(a[i][j] > 0) System.out.print(a[i][j]);
else System.out.print(" ");
}
System.out.println();
}
}
private static boolean contains(String s, char c)
{
return s.indexOf(Character.toLowerCase(c)) >= 0 ||
s.indexOf(Character.toUpperCase(c)) >= 0;
}
public void schlErstellen() throws IOException {
char []alph={'A','B','C','D','E','F','G','H','I','J','K','L','M','N',
'O','P','Q','R','S','T','U','V','W','X','Y','Z',' '};
BufferedReader lesen = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Bitte Schluessel eingeben: ");
String schl = lesen.readLine();
int zeilen = schluessel.length;
int spalten = schluessel[0].length;
int i = 0;
for(int j = 0; j < schl.length() && i < zeilen*spalten; j++) {
if(schl.indexOf(schl.charAt(j)) == j) {
schluessel[i/spalten][i%spalten] = schl.charAt(j);
i++;
}
}
for(int j = 0; j < alph.length && i < zeilen*spalten; j++) {
if(!contains(schl, alph[j])) {
schluessel[i/spalten][i%spalten] = alph[j];
i++;
}
}
printArray(schluessel);
}
public void verEntSchl() throws IOException {
String s; char []verschl;
BufferedReader lesen = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Bitte (verschlüsselten) Text eingeben: ");
s= lesen.readLine();verschl= s.toCharArray();
if(verschl[0]=='1'||verschl[0]=='2'||verschl[0]=='3'||verschl[0]=='4'||
verschl[0]=='5'||verschl[0]=='6')
{
int []entschl;
for(int u=0; u<verschl.length; u++)
{
int p=0;
entschl[p]=Integer.parseInt(verschl[u]);
p++;
}
int i=0, j=1;
while(i<entschl.length&&j<entschl.length)
{
int a=entschl[i]; a=a-1;
int b=entschl[j]; b=b-1;
System.out.print(schluessel[a][b]);
i=i+2; j=j+2;
}
System.out.println();
}
else
{
for(int i=0; i<verschl.length; i++)
{
for(int j=0; j<schluessel.length; j++)
{
for(int b=0; b<schluessel[0].length; b++)
{
if(verschl[i]==schluessel[j][b])
{
j=j+1; b=b+1;
int v=0; v=j*10+b;
System.out.print(v+" ");
}
}
}
}
}
}
}
public class Lernsituation_3 {
public static void main(String[] args) throws IOException {
Schluessel test=new Schluessel();
test.schlErstellen();
test.verEntSchl();
}
}
In der Methode verEntSchl lese ich ein Wort oder eine Zahlenfolge ein. Diesen String wandle ich in einen char-Array um, damit ich jedes Zeichen (egal ob Buchstabe oder Zahl) auf einer Stelle im Array hab.
Danach wird via if überprüft, ob es sich um Zahlen handelt, wenn das der Fall ist, brauche ich den Inhalt des Array aber als int und nicht mehr als char, damit ich damit weiterrechnen kann.
Ich hab gedacht, ich könnte mit Integer.parseInt arbeiten, aber da erscheint die Fehlermeldung, dass dies nur bei String funktioniert...
Kann mir jemand weiterhelfen?