Entwickler-Ecke
C# - Die Sprache - String startsWith()-Problem
Wumpe - Mi 11.11.09 16:53
Titel: String startsWith()-Problem
Also, ich habe eine Map, wo als Keys Hex-Werte sind und als Values Unicode-Zeichen.
"0003", "あ"
(...)
"010F", "⤴"
(...)
"012B", "A"
"012C", "B"
"012D", "C"
usw.
Nun habe ich einen String, der u.a. Unicode-Zeichen enthält. Ich beschränke mich in diesem Falle aber mal auf den String "AAAAAA".
Diesen möchte ich nun durchlaufen, um sie in Zahlenwerte umzuwandeln.
Ich gehe dafür durch alle Werte meiner Map durch und hole mir jeweils ein Key- und Value-Paar.
Ich vergleiche den String nun mit der startsWith()-Methode.
if (myString.StartsWith(mapValue))
Console.WriteLine(myString + " --> " + mapKey + " | " + mapValue);
Ausgabe:
AAAAAA --> 010F | ⤴
AAAAAA --> 0110 | ⤵
AAAAAA --> 012B | A
AAAAAA --> 01DB | ⤴
AAAAAA --> 01DC | ⤵
Daraufhin habe ich folgendes probiert:
Console.WriteLine("A".StartsWith("⤴"));
Ausgabe: True
Also ich bin ja nicht der Meinung, dass "A" mit "⤴" beginnt. :cry: Was ist da los? Ist das ein Bug (oder ein Feature ;)) Was kann ich dagegen tun?
Kha - Mi 11.11.09 17:39
Keine Ahnung, was da schief läuft, aber im Zweifelsfall schieben wir es mal auf die deutsche Sprache :mrgreen: .
C#-Quelltext
1:
| Console.WriteLine("A".StartsWith("⤴", StringComparison.Ordinal)) |
...ok, die Forensoftware mag das Zeichen ebenfalls nicht ;) .
Wumpe - Mi 11.11.09 18:06
Kha hat folgendes geschrieben : |
Keine Ahnung, was da schief läuft, aber im Zweifelsfall schieben wir es mal auf die deutsche Sprache :mrgreen: .
C#-Quelltext 1:
| Console.WriteLine("A".StartsWith("⤴", StringComparison.Ordinal)) |
...ok, die Forensoftware mag das Zeichen ebenfalls nicht ;) . |
Oh, danke für den Tipp.
Wusste gar nicht, dass man noch ein StringComparison angeben kann. Habe mir jetzt ne eigene StartsWith geschrieben (klappt auch):
C#-Quelltext
1: 2: 3: 4: 5:
| public static bool StartsWith(string s, string compareWith) { if (s.Length < compareWith.Length) return false; return (s.Substring(0, compareWith.Length).Equals(compareWith)); } |
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!