0
votes

La méthode de la cochon que j'essaie de faire du mal à vérifier la ponctuation à la fin Java

J'essaie de répondre à cette question.

Déplacez la première lettre de chaque mot à la fin de celui-ci, puis ajoutez "AY" à la fin du mot. Laisser des marques de ponctuation intactes.

C'est ce que je faisais jusqu'à présent: xxx

Il est censé renvoyer la marque de ponctuation sans ajouter "AY" + "". Je pense que je suis impérieux mais s'il vous plaît aide. S'il vous plaît voir le débogueur ci-dessous.

Test de la méthode pigit


2 commentaires

Sur la base des informations limitées que vous avez fournies, la production devrait être "ellhay, orldway,!" (Les marques de devis ne font pas partie de la réponse.)


Astuce: Lisez attentivement la documentation. Word.Contains ("',.!?:;") tests si Word contient le sous-chaîne ' ,. !?:; . Ce n'est probablement pas ce que vous voulez.


3 Réponses :


0
votes

L'un des problèmes ici est que votre autre déclaration est jamais invoquée. La méthode .Contains ne fonctionnera pas avec plusieurs caractères comme celle-là que si vous essayez de les faire correspondre à tous. Dans vos conditions, vous demandez essentiellement si le mot correspond à cette chaîne entière "',.!?:;". Si vous gardez simplement le point d'exclamation là-bas, cela fonctionnera d'invoquer. Je ne sais pas comment vous pouvez utiliser sinon contient en plus de faire une condition pour chacun comme Word.Contains ("!") || Word.Contains (",") || Word.Contains ("''"), etc.. Vous pouvez également utiliser regex pour ce problème.

Alternativement, vous pouvez utiliser quelque chose comme, xxx

pour déterminer si Un caractère n'est pas un alphabétique, et est un symbole ou une ponctuation.


1 commentaires

Notez que le constructeur est déprécié dans les versions Java plus récentes. Vous devriez toujours utiliser caractère :: valeurOf à la place. Cela exploite le cache caractère .



0
votes

Je pense que la meilleure façon n'est pas relâchée sur str.split ("\\ s ++") code>, car vous pourriez avoir la ponctuation dans n'importe quelle plaque. Le meilleur est de regarder à travers la chaîne et de trouver toutes les symboles de la lettre ou du chiffre . Après cela, vous pouvez définir un mot frontières et le traduire. xxx pré>

Sortie: strong> p>

System.out.println(pigIt(",Hello, !World"));    // ,elloHay, !orldWay


0 commentaires

0
votes

regex peut être difficile de commencer mais est très puissant:

Hello, World, ! -->elloHay, orldWay, !
Hello?, Wo$, F, ! -->elloHay?, oWay$, Fay, !


0 commentaires