2016-11-28 1 views
0

Je veux changer le caractère \ mais cela ne fonctionne pas comme je l'ai prévu. Parce que le personnage saute le personnage après, quel serait le littéral du caractère. J'ai donc essayé de le faire en UTF. Mais cela ne fonctionne toujours pas. Voici mon code:Vous voulez changer de caractère ''

switch(input.charAt(i)){ 
    case '\u005C': 
     actVel ++; 
     break; 
    case '_': 
     if(actVel == 0) 
     { 
      actVel++; 
      plusCount++; 
     } 
     else 
     { 
      flat++; 
     } 
     break; 

Je reçois le "caractère littéral non fermé" comme code d'erreur. Je serais vraiment reconnaissant pour une réponse. Merci :) - Cyaena

+1

'case '\\':' aurait dû fonctionner. – Thilo

Répondre

0

Le \ est un caractère d'échappement spécial.

Voici la liste des échappés characters:

  • \\ pour \
  • \n pour une nouvelle ligne
  • \t pour onglet
  • \b pour backspace
  • \r pour carraige retour
  • \f formulaire feed
  • \' pour le caractère '
  • \" pour le caractère "

Pour un \ vous devez utiliser la séquence spéciale \\

À titre d'exemple:

System.out.println("Hello boys\\girls!"); // Prints: Hello boys\girls! 

Fro votre code, vous devez effectuer les opérations suivantes:

case '\\': 
    ... 
    // Your code here 

Du commentaire à la réponse de Aimee. La chaîne _/\_ doit être écrite "_/\\_". La longueur de cette chaîne est 4 et est calculée comme suit:

_ 1 character 
/ 1 character 
\\ 1 character (printed as \) 
_ 1 character 
+0

Ok, merci. Mais le problème est que je lis la chaîne d'entrée à partir d'un fichier .txt. Ce fichier .txt est défini et je ne suis pas autorisé à le changer. – Cyaena

+0

Dans le fichier txt, le contenu est égal à ce qui est imprimé. Donc le fichier texte a un contenu _/\ _ –

3

Essayez d'échapper à la barre oblique inverse en essayant \\

+0

Cela fonctionne. Mais alors cela crée un nouveau problème. Je n'ai même pas pensé au premier. Si je veux lire dans une chaîne comme "\ __/\\ __" ceci, certains caractères sont toujours ignorés. Comment puis-je changer cela? Je n'ai aucun moyen de changer l'entrée. Il est définitivement défini. Même ici, il échappe aux personnages ... – Cyaena

+0

Pas sûr d'avoir compris le problème? –

+0

@Cyaena n'est pas possible d'écrire une chaîne "_/\ _" vérifier ma réponse pour la liste complète des caractères échappés. Cette chaîne doit être écrite comme "_/\\ _" –