2016-04-13 11 views
-2

Ich kenne den Akzent, den ich dem Buchstaben ex: "´" hinzufügen möchte, und ich kenne den Buchstaben, ich möchte es ex:"a" hinzufügen, und ich möchte das Endergebnis á sein. Das hat aber mit mindestens 5 Buchstaben arbeiten: a,e,i,o,u und 4 Akzent "´","“,‚^‘,‚~‘.Right now i am working on a function with several diferente case's` Gibt es einen besseren Weg, dies zu tunDer beste Weg, dem Buchstaben einen Akzent hinzuzufügen?

Methode i jetzt bin mit:.? letra: Brief; caraterEspecial: specialCharater

switch (caraterEspecial) 
      { 
       case "´": 
        switch (letra) 
        { 
         case "a": 
          letra= "á"; 
          break; 
         case "e": 
          letra= "é"; 
          break; 
         case "i": 
          letra= "í"; 
          break; 
         case "o": 
          letra= "ó"; 
          break; 
         case "u": 
          letra= "ú"; 
          break; 
        } 
        break; 

       case "`": 
        switch (letra) 
        { 
         case "a": 
          letra= "à"; 
          break; 
         case "e": 
          letra= "è"; 
          break; 
         case "i": 
          letra= "ì"; 
          break; 
         case "o": 
          letra= "ò"; 
          break; 
         case "u": 
          letra= "ù"; 
          break; 
        } 
        break; 

       case "~": 
        switch (letra) 
        { 
         case "a": 
          letra= "ã"; 
          break; 
         case "o": 
          letra = "õ"; 
          break; 
        } 
        break; 

       case "^": 
        switch (letra) 
        { 
         case "a": 
          letra= "â"; 
          break; 
         case "e": 
          letra= "ê"; 
          break; 
         case "i": 
          letra= "î"; 
          break; 
         case "o": 
          letra= "ô"; 
          break; 
         case "u": 
          letra = "û"; 
          break; 
        } 
        break; 
      } 

Für die akzeptierte Antwort ist eine gute Liste zu verwenden:

http://www.fileformat.info/info/unicode/block/combining_diacritical_marks/list.htm

+0

https://www.bing.com/search?q=c%23+add+diacritical+marks, insbesondere http://stackoverflow.com/questions/249087/how-do-i-remove-diacritics -accents-from-a-string-in-net zeigt einen umgekehrten Prozess, der Ihnen hilft, die richtigen Methoden zu finden –

+0

@TimSchmelter Wenn Sie keine Antwort zu geben haben, nehmen Sie bitte keine Dinge an. Vielen Dank. – meme

Antwort

4

Sie können eine Unicode hinzufügen combining acute accent (U+0301). Dies erzeugt eine 2-stellige Sequenz, die als Zeichen mit Akzent angezeigt wird.

Bei Bedarf können Sie diese Zeichenfolge zu einer kanonischen Form normalisieren.

Bsp .:

string s = "a"; 
s += "\u0301"; 
s = s.Normalize(); 
+0

Beachten Sie, dass dies immer noch extrem kulturspezifisch ist, also ist es nicht unbedingt besser, ein Wörterbuch für die Mappings oder ähnliches zu haben. Unicode-Tricks machen Spaß, aber verschiedene Sprachen behandeln ähnliche Konzepte immer noch anders. – Luaan

+0

Das ist eine super gute Antwort, danke. – meme

+0

Wenn ich versuche, diesen Code zu verwenden: http://www.fileformat.info/info/unicode/char/223c/index.htm Sie bleiben getrennt. Wie repariere ich es? – meme

0

Leicht können Sie die Methode ersetzen verwenden, aber Ihre Frage ist unvollständig. Sie sollten die Funktion, Stück Code senden.

Ich würde einfach eine s.replace('a','á') verwenden, vielleicht ist es banal, aber Sie müssen nicht zu viel beschäftigen, wenn Buchstaben so sind.

+0

Das funktioniert nicht, weil ich es für 5 Buchstaben und 4 Akzent brauche. – meme

Verwandte Themen