Autor Beitrag
Wumpe
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Mi 11.11.09 16:53 
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: 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: .
ausblenden C#-Quelltext
1:
Console.WriteLine("A".StartsWith("⤴", StringComparison.Ordinal))					


...ok, die Forensoftware mag das Zeichen ebenfalls nicht ;) .

_________________
>λ=
Wumpe Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Mi 11.11.09 18:06 
user profile iconKha hat folgendes geschrieben Zum zitierten Posting springen:
Keine Ahnung, was da schief läuft, aber im Zweifelsfall schieben wir es mal auf die deutsche Sprache :mrgreen: .
ausblenden 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):

ausblenden 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));
        }