Java - String Array mit Int "füttern"? :)

Bobo2040

Mitglied
Hi :)

Ich fange gerade erst mit Java an :D
Und blicke da auch nocht nicht wirklich durch :p so nun wollte ich wie mans zu Testzwecken halt so macht :D Ein kleines Programm schreiben was ich dann später so weiter "anbauen" will das es ein kleiner Server wird :) der Sinn des ganzen ist so lerne ich meiner meinung nach am besten OOP weil ich so aus vielen Fehlern lerne die das "project" so mit sich bringt :) wenn ich etwas anbaue und davor "kacke" gebaut habe muss ich alles ändern und neu schreiben :D Finde ich besser so :p

So zum Problem :D Ich habe ein Array das 2D sein soll so soll es ausgebaut sein:

ArrayName["Username(ID:1)][x-Coor(ID:0)]
ArrayName["Username(ID:1)][y-Coor(ID:1)]

Ich weiß nicht obs so sinnvoll ist aber könnte ja gerne Verbesserungsvorschläge einbringen :p

Aber ich erstelle dieses Array als "String" also macht es faxen wenn ich Int Werte reinhauen will ist ja auch klar :D aber wenn ich Int to String Casten will haut das auch nicht hin :D
Ich weiß jetzt nicht wie ich das anders Realisiern soll ? Weil meine egal wie viele "Dimensionen" das Array hat es werden immer String und Int vermischt :/

Hoffe mir kann jemand helfen :)

Mein Code:
Java:
public class ArrayTest {
    private static final int maxData = 2; //x-Coordinaten
    private static final int maxClients = 16; //Max 16 Clienten(Spieler)
   
   
    public static void main(String[] argv) {
        String[][] Array1 = new String[maxClients][maxData];
        Object Username = null;
        Username = new String("Testuser");
        ArrayTest.AddClient( Array1,Username, 123, 456);
        ArrayTest.OutputClients(Array1);
    }
   
   
    private static void AddClient(String[][] Array1,Object username,int x, int y) {
       
        Array1[Array1.length] = (String[]) username; //Client Name
        Array1[Array1.length][0] = (String) x; //Zu dieser X- Coordinate will er Fliegen ...
        Array1[Array1.length][1] = (String) y; //Zu dieser Y- Coordinate will er Fliegen ...
    }


    private static void OutputClients(String[][] Array1) {
       
        System.out.println("Clients:");
       
        for(int i = 0;i < Array1.length;i++) {
            for(int j = 0;j < Array1[i].length;j++) {
                    System.out.println(Array1[i] + "\n");
                    System.out.println(Array1[i][j] + "\n");
                    System.out.println(Array1[i][j+1]);
            }
        }
       
    }
}

Ich bin natürlich immer und gerne für Kritik? und Verbesserungsvorschläge sowie Tipps und gute Tutorial Links offen! :)

So Far
 
Ich muss sagen, dass ich nicht ganz verstehe, was Du vor hast. Oder besser gesagt, verstehe ich, was Du willst, aber nicht, warum Du es so machst. Letztendlich willst Du doch ein Array haben, welches für jeden Nutzer den Namen und die x- und y-Koordinate speichert. Dennoch kannst Du nicht eine Variable als Array definieren und am Ende dieser den Wert String geben – entweder, oder. Persönlich würde ich Dein Problem so lösen (alles ungetestet):
Java:
public class User {
  private String name;
  private int x;
  private int y;

  public User( String name, int x, int y ) {
    this.name = name;
    this.x    = x;
    this.y    = y;
  }

  public String getName() {
    return this.name;
  }

  public int getPositionX() {
    return this.x;
  }

  public int getPositionY() {
    return this.y;
  }
}

public class ClientPool {
  private static final int maxClients = 16;
  private static User[]    clients;

  public ClientPool() {
    this.clients = new User[ maxClients ];
  }

  public void addClient( String name, int x, int y ) {
    int i = 0;
    int length = this.clients.length;

    for ( ; i < length; ++i ) {
      if ( this.clients[ i ] == null ) {
        this.clients[ i ] = new User( name, x, y );
        break;
      }
    }

    throw new ArrayIndexOutOfBoundsException();
  }

  public int getLength() {
    int i = 0;
    int length = this.clients.length;
    int ret = 0;

    for ( ; i < length; ++i ) {
      if ( this.clients[ i ] != null ) [
        ++ret;
      }
    }

    return ret;
  }

  public bool isFull() {
    return ( this.getLength() == maxClients );
  }

  public void outputClients() {
    int i = 0;
    int length = this.clients.length;

    System.out.println( "Clients:" );

    for ( ; i < length; ++i ) {
      System.out.println( this.clients[ i ].getName() );
      System.out.println( this.clients[ i ].getPositionX() );
      System.out.println( this.clients[ i ].getPositionY() );
    }
  }
}

public class ArrayTest {
  public static void main( String[] argv ) {
    ClientPool clients = new ClientPool();
    clients.addClient( "Testuser", 123, 456 );
  }
}
 
Zuletzt bearbeitet:
Hi :)
Danke erstmal fuer den Code ^^
könntest du wenn es dir keine Umstände macht die letzten Zeilen also CliebtPool() erklären ?:)

Mfg
 
Okay es hat sich erledigt xD bin am Handy dran hatte mir den Code auch am Handy angeguckt dabei ist mir nicht aufgefallen das ClientPool ne eigene Classe ist :D also habs verstanden :p
trozdem Danke!:)

Mfg
 
Zurück