Umwandlung von string oder char zu int
Ich bin Total verwirrt
string temp = "73";
int tempc0 = Convert.ToInt32(temp[0]);
int tempc1 = Convert.ToInt32(temp[1]);
MessageBox.Show(tempc0 + "*" + tempc1 + "=" + tempc0*tempc1);
Ich würde erwarten: 7*3=21
Aber dann erhalte ich: 55*51=2805
- Konvertieren der chars wieder auf string und Sie erhalten Ihre "gewünschte" Ergebnis:
int tempc0 = Convert.ToInt32(temp[0].ToString()); int tempc1 = Convert.ToInt32(temp[1].ToString());
Einem char numerische implizit-und diese Zahl ist nicht mit der int-Darstellung des substring. - Der Schnellste Weg zur Umwandlung Ziffer-Zeichen in die int-Werte ist die Verwendung
temp[0] - '0'
. Siehe meine Antwort für ein gutes Beispiel HIERFÜR.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ist der ASCII Wert für die Zeichen 7 und 3. Wenn Sie möchten, Zahlendarstellung, dann können Sie konvertieren jedes Zeichen in string und verwenden Sie dann
Convert.ToString
:55 und 51 sind mit Ihren Standorten in der ascii-Tabelle.
Link zu chart - http://kimsehoon.com/files/attach/images/149/759/007/ascii%281%29.png
versuchen Sie es mit
int.parse
int.Parse
funktioniert nur mit strings und nicht mit chars 😉int.Parse(temp[0].ToString());
Dies funktioniert:
Haben Sie zu tun, ToString (), um die tatsächliche string-Darstellung.
Dass Sie immer die ASCII-codes für 7 und 3, die sind 55 und 51 beziehungsweise.
Verwenden
int.Parse()
zum konvertieren von char-oder string-Wert.int.Parse()
nicht akzeptierenchar
als parameter, so müssen Sie konvertierenstring
ersten, oder verwenden Sietemp.SubString(0, 1)
statt.Diese funktioniert, und ist rechnerisch effizienter als die Verwendung von entweder
int.Parse()
oderConvert.ToInt32()
:Konvertierung eines Zeichens in einen integer gibt Sie den Unicode-Zeichencode. Wenn Sie konvertieren eine Zeichenfolge in eine ganze Zahl, es wird analysiert werden, wie eine Zahl:
Beim schreiben
string temp = "73"
Ihretemp[0]
undtemp[1]
werdenchar
Werte.Vom
Konvertieren.ToInt32-Methode(Char)
MethodeDas bedeutet, dass die Umwandlung einer
char
zu einemint32
gibt Sie den unicode-Zeichencode.Brauchen Sie nur zu verwenden
.ToString()
Methode Ihrertemp[0]
undtemp[1]
Werte. Wie;Hier ist ein DEMO.