2017-05-16 8 views
0

Ich bekomme Fehler "Eingabe Zeichenfolge war nicht im richtigen Format" beim Parsing zu int. Aber Zeichenfolge ist im richtigen Format. Ich füge folgenden Screenshot hinzu.Eingabe-Zeichenfolge war nicht im richtigen Format Fehler beim Analysieren zu Int

enter image description here

+0

Ist etwas wirklich falsch hier oder hat meine Urlaubszeit kommen? – Doruk

+3

Sieht gut aus. Möglicherweise befinden sich einige nicht druckbare Zeichen in der Zeichenfolge, die Probleme verursachen. Kannst du versuchen, ein [mcve] zu erstellen? – Heinzi

+1

Wie @Heinzi sagte, müssen einige versteckte Zeichen in der Zeichenfolge enthalten sein. Versuchen Sie 'int.Parse (a.Substring 0,4)' – Pikoh

Antwort

1

Das Problem ist, dass Es müssen einige versteckte Zeichen in Ihrer a Zeichenfolgenvariable sein (Carriage Return vielleicht?). Versuchen Sie int.Parse(a.Substring 0,4) wie normalerweise sind sie am Ende der Zeichenfolge.

Sie könnten auch den Eingang reinigen, von dem Sie diesen Wert erhalten.

1

ich bemerkt, dass Sie mehrere Konvertierungen tun. Sind Sie sicher, dass es ein Fehler ("2016") ist? Wenn ja, dann muss es versteckte Zeichen geben, wie andere vorgeschlagen haben. Das astring (0,4) würde tatsächlich alle nachfolgenden Zeichen entfernen. Aber wenn das erste Zeichen ein verstecktes Zeichen ist, würde es nicht.

sollte alle möglichen versteckten Zeichen löschen.

+0

yeah. Ich bin sicher. – Doruk

+1

hast du versucht, eine mit der von mir vorgeschlagenen Linie zu säubern? –

1

Vielleicht können Sie so etwas wie dies versuchen:

int x = Convert.ToInt32(a); 

Außerdem können Sie versuchen, die .ToString() Methode von a zu verwenden, um es stabiler laufen zu lassen.


Sie können Additionaly versuchen, die Zeichenfolge aus allen "non-Nummer" Zeichen mit Rexex zu löschen:

/// <summary> 
/// RegEx to extract all non numeric values. 
/// </summary> 
private static readonly Regex rxNonDigits = new Regex(@"[^\d.,-]+"); 

es verwenden, wie löschen folgt:

String a2 = rxNonDigits.Replace(a, ""); 
+1

Welchen Unterschied erwarten Sie zwischen 'int.Parse' und' Convert.ToIn32'? – Pikoh

+0

Ich habe beides versucht. Ich habe viele verrückte Dinge ausprobiert. – Doruk

+0

Es löst das Problem nicht. –

1

Ich glaube, Sie REST-API mit JSON verwenden oder ganze Zeichenfolge in Abfrage-String vorbei d.h JSON formatted string, dann sollten Sie

a = new JavaScriptSerializer().Deserialize(a, null).ToString(); 
x = int.Parse(a); 
Verwandte Themen