String in Variable speichern

  • 16 Antworten
  • Letztes Antwortdatum
D

DevMarv

Neues Mitglied
0
Hallo,

ich habe das Problem, dass ich einen String aus mehreren Strings erstelle und diesen in einer TextView anzeigen lasse und ihn in eine Variable speichern möchte. Eigentlich:
Variable = TextView.setText
Oder liege ich da falsch?
Könnt ihr mir sagen wie ich die Variable speicher?
 
wenn du text aus einer textview lesen willst, dann .gettext
 
  • Danke
Reaktionen: DevMarv
Vielleicht solltest du deine Signature auch selbst anwenden xDDD
 
Klappt leider nicht. Gibt es andere Möglichkeiten 4 geschriebene Strings in eine Variable zu schreiben als Hilfe es soll eine IP werden.
IP = Zahl1 + "." + Zahl2 + "."+ Zahl3 + "."+ Zahl4;
So habe ich es mir vorgestellt.
 
Ich glaube niemand hier weiß genau was du machen willst oO

Code:
int z1 = 255;
int z2 = 255;
int z3 = 255;
int z4 = 255;

String ip = z1 + "." + z2 + "." + z3 + "." + z4;
Sollte funktionieren...

Es gibt noch die Klasse StringBuilder. Damit kannst du beispielsweise sagen:
Code:
int z1 = 255;
int z2 = 255;
int z3 = 255;
int z4 = 255;

StrinbBuilder builder = new StringBuilder();
builder.append(String.valueOf(z1));
builder.append(".");
builder.append(String.valueOf(z2));
builder.append(".");
builder.append(String.valueOf(z3));
builder.append(".");
builder.append(String.valueOf(z4));

String ip = builder.toString();

Gruß
 
DevMarv schrieb:
Klappt leider nicht. Gibt es andere Möglichkeiten 4 geschriebene Strings in eine Variable zu schreiben als Hilfe es soll eine IP werden.
IP = Zahl1 + "." + Zahl2 + "."+ Zahl3 + "."+ Zahl4;
So habe ich es mir vorgestellt.
Das möchte ich sehen wenn du so einen String aus Integern bauen möchtest^^

Ich schlage folgendes vor:
Code:
int Zahl1 = 127;
int Zahl2 = 0;
int Zahl3 = 0;
int Zahl4 = 1;
String ip = String.valueOf(Zahl1) + "." + String.valueOf(Zahl2) + "." + String.valueOf(Zahl3) + "." + String.valueOf(Zahl4)
Damit sollte es schon mal keine Probleme wegen Datentypen geben ;)
 
  • Danke
Reaktionen: DevMarv
DevMarv schrieb:
Klappt leider nicht. Gibt es andere Möglichkeiten 4 geschriebene Strings in eine Variable zu schreiben als Hilfe es soll eine IP werden.
IP = Zahl1 + "." + Zahl2 + "."+ Zahl3 + "."+ Zahl4;
So habe ich es mir vorgestellt.

Was heißt denn 4 geschriebe Strings?
Wenn du 4 Strings hast musst du genau das machen, was du hier machst:
String ip = String1 + "." + String2........

Wenn deine ZahlX ein String ist funktioniert das genau so

und um das ganze dann im textview anzuzeigen müsste eigentlich

TextView.setText(ip)
dann funktionieren.

Entweder versteh ich dein Problem nicht oder du solltest ernsthaft nochmal die grundlegendsten Grundlagen von Java lernen.
Wenn es schon daran scheitert kann ich dir viele weitere Verzweiflungen vorhersagen ;)
 
@DevMarc:
Eigentlich wurde schon alles gesagt...
Aber sehe das mit den Grundlagen hier ebenfalls ähnlich.

Diese "Themen" sind sinnvoll nachzuarbeiten:
-casten (Datentypen umwandeln) Galileo Computing :: Java ist auch eine Insel - 2 Imperative Sprachkonzepte

-String-Klasse Galileo Computing :: Java ist auch eine Insel - 4 Der Umgang mit Zeichenketten

Am Rande vielleicht noch ein kleiner Tipp: bei manchen Sprachen ist es notwendig einen String zu terminieren. Das bedeutet, dass er am Ende "geschlossen" sein muss. Sprich hinter der letzten Variable nochmal ein
Code:
+ "ZEICHEN/LEERTASTE/ bzw. in C \0"
 
Da fällt mir noch ein Weg ein:

Code:
ArrayList<String> list = new<String> ArrayList();
list.add(String.valueOf(Zahl1));
list.add(".");
list.add(String.valueOf(Zahl2));
list.add(".");
list.add(String.valueOf(Zah3));
list.add(".");
list.add(String.valueOf(Zahl4));

String ipString;

for(String myString:list) {
    ipString +=myString;
}
;)
 
Dann würde ich mir aber liebe eine ArrayList<Character> machen
Und dann jeden String durch eine for-schleife schicken und jeden Character einzeln hinzufügen ;)
 
Bit für Bit wäre vielleicht noch besser. :)

Vielleicht finden sich noch ein paar Lösungen. ;)
 
DevMarv schrieb:
Hallo,
...dass ich einen String aus mehreren Strings erstelle und diesen in einer TextView anzeigen lasse und ihn in eine Variable speichern möchte. Eigentlich:
Variable = TextView.setText
Oder liege ich da falsch?

Code:
String x = "";

// do what you want
x *= "<trennzeichen>" + neuevariable;

so werden nach und nach deine String zu einer Kette verbunden ...

zum Thema trennen, da bin ich ehrlich gesagt zu sehr an PHP gewöhnt, da gibts den Behfehlt slipt()....
 
markus.tullius schrieb:
bit für bit wäre vielleicht noch besser. :)

vielleicht finden sich noch ein paar lösungen. ;)

:laugh::lol:

char-Array und das über Ascii-Werte einlesen. Da freut sich derjenige, der an dem Projekt weiterarbeiten soll.
Oder über pushback die Zeichen in einen Vector werfen :D
 
Zuletzt bearbeitet:
MrPermanent schrieb:
Code:
String x = "";

// do what you want
x *= "<trennzeichen>" + neuevariable;

so werden nach und nach deine String zu einer Kette verbunden ...

zum Thema trennen, da bin ich ehrlich gesagt zu sehr an PHP gewöhnt, da gibts den Behfehlt slipt()....

ist das richtig? Müsste es nicht ein + vor dem = sein

eine split Methode gibts in java übrigens auch.
Code:
String[] ipTeile = ip.split(".")

@DevMarv
wenn du das überhaupt noch liest, ich würde es mit dem StringBuilder machen.
 
Ich finde den StringBuilder etwas unübersichtlich. Die Vorgehensweise mit dem += ist halt "nachvollziehbarer".
Wobei du insofern Recht hast, dass die StringBuilder-Fkn (wahrscheinlich) noch prüft und somit sicherer zu implementieren ist.
 
Es kommt immer drauf an was du machst.
Ein Einzeiler mit
String s = string1 + string 2 + string3.
Ist problemlos machbar, da der java compiler soweit ich weiß daraus sowieso einen Stringbuilder macht. (oder StringBuffer)

Problematisch ist aber vorallem, wenn man += innerhalb einer schleife benutzt.

for (...) {
//do something
s += wert
}

Hier wird nämlich in jedem Schleifendurchlauf ein neues String Objekt erzeugt.
(Strings sind immutable), hier ist dann ein Stringbuilder die bessere Alternative.


Expressions
 
Zurück
Oben Unten