IP-Adress-octete in Arrays speichern

Nabend Zusammen,

Ich habe das Problem bzw weis in dem Punkt nicht weiter wie ich eine IP-Adresse, die der Nutzer nach Aufforderung in der Konsole, eingeben muss, unterteilt in octete in Arrays speichere um sie dann Laut Aufgabenstellung in Hexadezimal u.a. umzuwandeln und wieder auszugeben.
Würde das denn mit ner Schleife gehen die einfach solange die Dezimalzahl in dem Array speichert bis ein "." kommt? Wenn ja? Wie soll sowas aussehen ?

Vielen Dank im Vorraus für euere Mühen!!!!

Sledge
 

Cromewell

Top Contributor
Du kannst den String auch mittels regex bei jedem "." splitten.
Java:
String[] tokens = ip.split("\\.");
Sowas in der Art.
 

scandreb

Mitglied
Guten Morgen Sledgeheammer,

also ich würde folgendermaßen vorgehen:
  1. Den Input als String erstmal aufteilen - also bei jedem Punkt trennen. Dazu hast du ja bereits eine Lösung von Cromewell erhalten. :)
  2. Das String[] Array in ein int[] Array casten. (Integer.parseInt() könnte dir dabei helfen.)
  3. Die 4 int-Werte als Hexadezimal ausgeben. Dafür könntest du z. B. die Funktion Integer.toHexString() verwenden.
Mehr Details zu den Methoden bzw. zu der Integer Klasse findest du in der JavaDoc: http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html

Viele Grüße
scandreb
 
Guten Morgen Sledgeheammer,

also ich würde folgendermaßen vorgehen:
2. Das String[] Array in ein int[] Array casten. (Integer.parseInt() könnte dir dabei helfen.)
scandreb
Also erstmal danke! Aber jetzt Hää!?!? Ich habe zum parsen das Beispiel gefunden
Java:
 for(int i=0;i<stringArray.length;i++)
     intArray[i]=Integer.parseInt(stringArray[i]);
was müsst ich denn für "i " einsetzen damit das läuft? und wie kann ich die einzelnen Arrays abrufen um die umzurechnen (wir dürfen die ToHex Methode nicht benutzen)
Ich bitte hier um Geduld und Verständnis :(
 

StarSheriff

Mitglied
Wenn du decimal (also deine int werte) in hex manuell umrechnen musst:

(1) Teile die Zahl mit Rest durch 16.
(2) Der Divisionsrest ist die nächste Ziffer (von rechts nach links).
Für Reste > 9 nimm die Buchstaben A, B, C, D, E, F
(3) Falls der (ganzzahlige) Quotient = 0 ist, bist du fertig,
andernfalls nimm den (ganzzahligen) Quotienten als neue Zahl
und wiederhole ab (1).

siehe http://www.arndt-bruenner.de/mathe/scripts/Zahlensysteme.htm, da kannst du das ganze auch ausprobieren.
 

scandreb

Mitglied
Nur eine kleine formale Klarstellung: das was du mit parseInt() machst ist kein casten !
Da hast du natürlich recht. Wie der Name der Methode schon richtig suggeriert ist es ein parsen. :)

Also erstmal danke! Aber jetzt Hää!?!? Ich habe zum parsen das Beispiel gefunden
Java:
 for(int i=0;i<stringArray.length;i++)
     intArray[i]=Integer.parseInt(stringArray[i]);
was müsst ich denn für "i " einsetzen damit das läuft? und wie kann ich die einzelnen Arrays abrufen um die umzurechnen (wir dürfen die ToHex Methode nicht benutzen)
Ich bitte hier um Geduld und Verständnis :(

Die Methode Integer.parseInt() verlangt als Eingabe einen String und liefert dir dazu den int-Wert zurück.
Java:
 String str1 = "192";
int number = Integer.parseInt(str1);
Die Variable number hätte in dem Fall den Wert 192.

Du müsstest also über dein vorher erstelltes String-Array iterieren (z. B. mit einer for-Schleife) und dir für jeden einzelnen String-Wert den entsprechend geparsten int-Wert merken - z. B. in einem Array.
Genau das wird auch in dem Beispiel von dir gemacht.

Dann solltest du als Ergebnis ein Array mit ints bekommen (int[]).
Über dieses Array kannst du wieder mittels einer for-Schleife iterieren und dann den Algorithmus von StarSheriff anwenden um die dezimalen Werte in hexadezimale Werte umzuwandeln.

Tipp: Diesen Algorithmus könntest du in eine extra Methode auslagern, z. B.:
Java:
int decToHex(int number) { ... }
 
Hmmm ich hab ein riesen verständnis problem ^^ mal damit alle bescheid wissen!
Java:
import java.io.Console;
public class IPUmrechner {


    public static void main(String[] args)
{
     System.out.println("Willkommen zu dem IPUmrechner");
     System.out.println("Bitte geben sie zunächst die IP-Adresse ein die Umgerechnet werdem soll");
    
     Console cons=System.console();
     cons.printf("IP-Adresse: ");
     String IP=cons.readLine();
     String[] tokens = IP.split("\\.");

     for(int i=0;i<stringArray.length;i++)
     intArray[i]=Integer.parseInt(stringArray[i]);
     System.out.println(i);
}
}

so sieht es aus ... wahrscheinlich is davon 3/4 falsch... der letzte Teil mit "for(int i=0)..." habe ich so gefunden und unverändert eingesetzt.
Ich möchte keine Schritt-für-Schritt Anleitung sondern verstehen was da passiert!

Gruß
Sledge
 

scandreb

Mitglied
Ich versuche einfach mal zu erklären was du in deinem Programm bisher machst. Vielleicht verstehst du dann dein Problem. :)
Java:
     String[] tokens = IP.split("\\.");
In dieser Zeile wandelst du deinen eingegebenen String in ein String-Array um.
Also aus "127.0.0.1" wird: [ "127", "0", "0", "1"]

Java:
     for(int i=0;i<stringArray.length;i++)
     intArray[i]=Integer.parseInt(stringArray[i]);
     System.out.println(i);
}
}
Hier hast du eine Schleife implementiert, die von 0 bis (exklusiv) stringArray.length läuft.
Angenommen stringArray.length wäre 10, dann würde die Schleife folgende Iterationen durchlaufen:
1. i = 0
2. i = 1
3. i = 2
...
10. i = 9

Innerhalb dieser Schleife würdest du das i-te Element in dem Array stringArray parsen und somit in einen int-Wert umwandeln (nicht casten :) ). Diesen int-Wert speicherst du dann an der i-ten Stelle im int-Array intArray.
Außerhalb der Schleife gibst du dann die Zählervariable i aus. Was hier m. E. nach nicht funktionieren dürfte, weil diese nicht mehr gültig ist. i ist nur innerhalb der Schleife gültig.

Ein Problem ist hier, dass es die Variablen stringArray und intArray bisher nicht gibt. :)
Aber der grundsätzliche Ansatz ist schon mal nicht verkehrt.

Hoffe ich konnte dir damit etwas weiterhelfen. Falls nicht, dann frag einfach nochmal. :)
 
@scandreb @JStein52 @StarSheriff ! Erstmal Vielen Dank euch ! Es ist mir einiges klar geworden!

Beginnt nun bei " intArray=Integer.parseInt(tokens);" die eigentliche Aktion der For Schleife, richtig?
Ok,... eigentlich wollte ich das nicht aber kann mir jemand mal zeigen wie er es machen würde? Also Theoretisch wäe mein Plan: Die IP-Adresse wird halt wie jetzt gesplitet in die Arrays. In der Schleife sollen die Strings ja in Int umgewandelt werden. In der Schleife würde ich dann auch die Einzelnen Octete in Hexadezimal umwandeln und die fertige Hex.Zahl in einer Variable Speichern.
Dann hätte ich wieder eine Schleife gemacht wo die Arrays wieder verwendet werden um sie in Octale Zahlen umzuwandeln(Ich glaube das waren Octale^^). Am Ende hätt ich dann Alle Ergebnisse die in den Variablen gespeichert sind ausgegeben.
Würdet ihr das auch so machen?

Und noch eine Frage... Ich befürchte das, egal wie intensiv ihr mir das erklären würdet ich es nicht verstehen werde. Ich möchte euch erstmal von dem Verschwenden der Zeit an mir bewahren! Bevor ich die Java Syntax nicht gerafft habe wird es wohl nichts oder?

Grüße

Sledge
 
Jap das betrifft auch die Oktalzahl aber das wäre ja doch nebensächlich.?

ok Danke an alle ! Ich werde mich Melden wenn mein Horizont sich erweitert hat *rofl*
 

Salo

Aktives Mitglied
Hi,

Kleiner Tipp am Rande:

Ich würde an deiner stell noch überprüfen,
ob auch wirklich nur Zahlen und Punkte eingegeben wurden.

Gruß, Salo
 
Ok Jungs!
Nach ner Nacht voller Syntaxen und Befehle hab ich, so glaub ich, es hinbekommen den Wert in Hexa auszugeben
Java:
import java.io.Console;
public class IPUmrechner {


    public static void main(String[] args)
{
     System.out.println("Willkommen zu dem IPUmrechner");
     System.out.println("Bitte geben sie zunaechst die IP-Adresse ein die Umgerechnet werdem soll");
    
     Console cons=System.console();
     cons.printf("IP-Adresse: ");

     String IP=cons.readLine();
     String[] tokens = IP.split("\\.");
     int[] wert = new int[4];

         System.out.print("In Hexadezimal: ");

     for(int i=0;i<tokens.length;i++)
     {
     wert[i]=Integer.parseInt(tokens[i]);
          StringBuffer buf = new StringBuffer();
       
           while(wert[i]>0){
        int Rest=wert[i]%16;
      
     
      switch(Rest){
      case 0:buf.insert(0, '0');
             break;
      case 1:buf.insert(0, '1');
             break;
      case 2:buf.insert(0, '2');
             break;
      case 3:buf.insert(0, '3');
             break;
      case 4:buf.insert(0, '4');
             break;
      case 5:buf.insert(0, '5');
             break;
      case 6:buf.insert(0, '6');
             break;
      case 7:buf.insert(0, '7');
             break;
      case 8:buf.insert(0, '8');
             break;
      case 9:buf.insert(0, '9');
             break;
      case 10:buf.insert(0, 'A');
             break;
      case 11:buf.insert(0, 'B');
             break;
      case 12:buf.insert(0, 'C');
             break;
      case 13:buf.insert(0, 'D');
             break;
      case 14:buf.insert(0, 'E');
             break;
      case 15:buf.insert(0, 'F');
       }
      wert[i]=wert[i]/16;
      }
    System.out.print(buf.toString());
   }
}
     
     }

Da bin ich schon erstmal ganz Stolz drauf! :D Ich glaube aber das ist von euren Plänen abgewichen oder? Das mit dem StringBuffer fand ich halt ziemlich leicht umzusetzen und hab mich dafür entschieden!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
P GUI IP-Adress-Eingabefeld Java Basics - Anfänger-Themen 10
K Datentypen Arrays in Java - Adress-Arithmetik im Vergleich zu Listen Java Basics - Anfänger-Themen 4
M Länge eines Arrays als Variable speichern möglich? Java Basics - Anfänger-Themen 14
R Liste und Arrays Java Basics - Anfänger-Themen 12
N mehrdimensionale arrays Java Basics - Anfänger-Themen 12
E Arrays in einer ArrayList miteinander vergleichen Java Basics - Anfänger-Themen 12
Kingdako Wie löse ich eine Mathematische Formel mit Arrays und Schleifen? Java Basics - Anfänger-Themen 32
D Wie kann man in Java nach Arrays auf Duplikate prüfen Java Basics - Anfänger-Themen 12
S Hilfe bei Praktischen Aufgaben von Arrays Java Basics - Anfänger-Themen 39
T Objekte mit arrays erstellen Java Basics - Anfänger-Themen 6
M Problem bei verschachtelter for-Schleife bei zweidimensionalen Arrays Java Basics - Anfänger-Themen 3
J Mehrdimensionale Arrays Java Basics - Anfänger-Themen 2
pc pc pc pc pc letztes Element eines Arrays n Java Basics - Anfänger-Themen 3
M Arrays Java Basics - Anfänger-Themen 3
Ostkreuz Wert von Arrays summieren Java Basics - Anfänger-Themen 1
Ostkreuz Summieren von Arrays Java Basics - Anfänger-Themen 4
javaBoon86 Arrays 2 Dimension Werte ausgeben Java Basics - Anfänger-Themen 15
paulen1 Best Practice "Unchecked Assignment" Warnung beim erstellen eines 2D Arrays of Arraylists Java Basics - Anfänger-Themen 2
B bei 2 Arrays Anzahl gleicher Elemente vergleichen? Java Basics - Anfänger-Themen 49
JustAProgrammer Ein Dreieck mit Arrays erstellen Java Basics - Anfänger-Themen 2
TheSepp Nur Arrays ausgeben, die Werte zugewiesen haben. Java Basics - Anfänger-Themen 4
volcanos Addition -> List<Integer> mit Arrays.asList() versus List<Integer>ArrayList<>() Java Basics - Anfänger-Themen 14
ArrayList mit unbekannter Menge an Arrays die Arrays vergleichen Java Basics - Anfänger-Themen 9
D Arrays an replaceAll-Methode übergeben Java Basics - Anfänger-Themen 12
rosima26 Geordnete Arrays ausgeben Java Basics - Anfänger-Themen 31
D Inhalt eines Arrays ausgeben Java Basics - Anfänger-Themen 7
A Jedes zweite Element eines Arrays entfernen Java Basics - Anfänger-Themen 30
C Zwei Arrays addieren und ausgeben Java Basics - Anfänger-Themen 3
E Zinsrechnung mithilfe von Arrays Java Basics - Anfänger-Themen 12
LePetitChat1 Arrays - NullPointerException? Java Basics - Anfänger-Themen 14
H Arrays: Größten Zahlen Unterschied herausfinden Java Basics - Anfänger-Themen 20
H Arrays befüllen Java Basics - Anfänger-Themen 43
C60 Methoden Main-Methode erkennt meine Arrays nicht. Java Basics - Anfänger-Themen 7
D Arrays Java Basics - Anfänger-Themen 9
C Java Arrays - Ausgabe in Methode Java Basics - Anfänger-Themen 12
R While-Loop der die Einträge eines Arrays in umgekehrter Reihenfolge anzeigt Java Basics - Anfänger-Themen 3
N Arrays Java Basics - Anfänger-Themen 5
W n verschiedene Arrays zufällig ausgeben - mit der Random-Klasse? Java Basics - Anfänger-Themen 8
U zwei 2D arrays auf gleich sein überprüfen Java Basics - Anfänger-Themen 14
melaniemueller Lagerverwaltung erstellen - mehrdimensionale Arrays Java Basics - Anfänger-Themen 62
C initialisieren eines arrays richtiger Größe und mit geeignetem Datentyp Java Basics - Anfänger-Themen 26
Bademeister007 Elemente aus zwei verschiedenen Arrays miteinander vergleichen und gegeben falls entfernen Java Basics - Anfänger-Themen 14
A Arrays aufsummieren Java Basics - Anfänger-Themen 11
C Wie 2 Arrays zusammenfügen und sortieren? Java Basics - Anfänger-Themen 11
S Arrays aneinanderketten Java Basics - Anfänger-Themen 20
Sinan Arrays auflisten ohne Wiederholung Java Basics - Anfänger-Themen 28
D Hilfe beim Erzeugen eines Arrays NullPointerException wird ausgelöst Java Basics - Anfänger-Themen 11
R Werte und Reihenfolge in 2d Arrays vergleichen Java Basics - Anfänger-Themen 5
D Verschlüsslungsaufgabe / Arrays Java Basics - Anfänger-Themen 6
L Methode für Zweidimensionale Arrays Java Basics - Anfänger-Themen 4
L Methode zum invertieren eines Arrays Java Basics - Anfänger-Themen 7
S zweidimensionale char arrays Java Basics - Anfänger-Themen 14
J Methoden Mehrdimensionale Arrays übereinander legen Java Basics - Anfänger-Themen 5
D Verwirrung bei Streams aus primitiven Arrays Java Basics - Anfänger-Themen 2
P Arrays mit verschiedenen Längen miteinander dividieren. Java Basics - Anfänger-Themen 1
P Wie kann ich die Zahlen dieses Arrays dividieren? Java Basics - Anfänger-Themen 2
N 2D Arrays jedes xy vergleichen Java Basics - Anfänger-Themen 7
J Traveling Salesman Problem [Arrays] Java Basics - Anfänger-Themen 9
M Arrays mit mehreren Werten über JOptionPane initialisieren Java Basics - Anfänger-Themen 12
Kawastori Größe eines Arrays bestimmen Java Basics - Anfänger-Themen 13
Zeppi Arrays[i] Java Basics - Anfänger-Themen 7
Lena_2611 Vergleich von Array1 Index mit Array2 Wert und erzeugen eines neues Arrays Java Basics - Anfänger-Themen 8
J B-Sprache mit Arrays ausführen Java Basics - Anfänger-Themen 18
A Teilarrays eines 2D-Arrays sortieren Java Basics - Anfänger-Themen 4
C Arrays - deklarieren, initialisieren? Ist das ein Objekt? Java Basics - Anfänger-Themen 3
K Sudoku mit 2D Arrays Java Basics - Anfänger-Themen 19
T Vertikales Histogramm mit Arrays Java Basics - Anfänger-Themen 3
JD_1998 Arrays einlesen, zwischenspeichern und wieder ausgeben Java Basics - Anfänger-Themen 8
Z Kein überprüfen des gesamten Arrays möglich.(Viergewinnt Spiel) Java Basics - Anfänger-Themen 6
F Arrays: Mathematische Funktion Java Basics - Anfänger-Themen 19
mihe7 Von Datentypen und (mehrdimensionalen) Arrays Java Basics - Anfänger-Themen 4
A Teilen eines Arrays Java Basics - Anfänger-Themen 5
DorFey Sortieren eines mehrdimensionalen Arrays Java Basics - Anfänger-Themen 8
N Probleme beim printen von Arrays durch for Schleife Java Basics - Anfänger-Themen 3
L If und else bei 2 Dimensionalen Arrays Java Basics - Anfänger-Themen 8
1 Arrays Java Basics - Anfänger-Themen 7
M Rückgabe eines Arrays Java Basics - Anfänger-Themen 10
L Addition von Arrays über die Parameterliste Java Basics - Anfänger-Themen 11
Z Erste Schritte Indexe innerhalb eines Arrays zusammensählen Java Basics - Anfänger-Themen 14
N Länge eines Arrays in einem Objekt testen Java Basics - Anfänger-Themen 51
S Übergabe von Arrays an Methoden Java Basics - Anfänger-Themen 20
D Collections Arrays in ArrayList abspeichern Java Basics - Anfänger-Themen 6
A Freie Stelle eines Arrays Java Basics - Anfänger-Themen 17
H Ein gegebenes Int Array zu Zwei Arrays zurück geben Java Basics - Anfänger-Themen 6
J 2D Arrays summieren Java Basics - Anfänger-Themen 21
J zwei String Arrays miteinander vergleichen Java Basics - Anfänger-Themen 18
A Java.util.Arrays Java Basics - Anfänger-Themen 15
T Methodenverknüpfung mit Arrays Java Basics - Anfänger-Themen 4
R Zugriff auf den Index eines Arrays, welches ein Objekt ist. Java Basics - Anfänger-Themen 4
F Eine Zahl mit Arrays vergleichen Java Basics - Anfänger-Themen 7
A 2d Arrays aus txt.file einlesen Java Basics - Anfänger-Themen 16
B Arrays Java Basics - Anfänger-Themen 4
P Arrays "automatisch" erstellen lassen Java Basics - Anfänger-Themen 12
B Nur eine bestimmte Anzahl an Arrays ausgeben Java Basics - Anfänger-Themen 9
H Gemeinsame Schnittmenge zweier Arrays ausgeben Java Basics - Anfänger-Themen 12
H Größte Duplikat (Größte Doppelte Wert) eines Arrays ausgeben Java Basics - Anfänger-Themen 9
A Summe des Arrays pd mit alternativer Schleife Java Basics - Anfänger-Themen 2
S Elemente eines Arrays bei Ausgabe auslassen Java Basics - Anfänger-Themen 2
M Verständnisproblem der Rekursion bei Arrays Java Basics - Anfänger-Themen 8
F Mehrdimensionale Arrays Java Basics - Anfänger-Themen 12

Ähnliche Java Themen

Neue Themen


Oben