web-dev-qa-db-fra.com

Java 13 bloc de texte * SANS * sauts de ligne

La fonction Java 13 bloc de texte multi-lignes avec """ les délimiteurs deviennent bien connus.

Cependant, j'ai un besoin récurrent où j'ai besoin de paragraphes entiers sans les nouvelles lignes intégrées.

En d'autres termes, l'extrait de code suivant:

String paragraph =
    """
    aaaa bbbb cccc
    dddd eeee ffff
    gggg hhhh iiii
    """"
System.out.println(paragraph);

produit ce qui suit, comme vous vous en doutez:

aaaa bbbb cccc
dddd eeee ffff
gggg hhhh iiii

... ce qui est généralement extrêmement utile. Cependant, dans mon cas, pour les paragraphes particulièrement volumineux, j'en ai besoin pour produire ceci:

aaaa bbbb cccc dddd eeee ffff gggg hhhh iiii

(.... et traiter le flux de texte plus tard.)

Existe-t-il un moyen d'établir un paramètre "sans nouvelle ligne" pour la fonction de citation triple?

12
alife

En effet, trouver une bonne réponse dans Java 13 n'est pas facile (peut-être même impossible)) mais je pense que Jorn Vernee a répondu avec élégance au problème dans sa réponse (nouvelles séquences d'échappement dans Java 14 fournir une solution acceptable).

Pour développer plusieurs préoccupations énumérées:

  • Holger mentionne que "la fonction" blocs de texte "n'est pas très convaincante". J'ai vu beaucoup de code "laid" qui fait la concaténation artificielle de chaînes, donc je pense que la fonctionnalité résout définitivement un problème. D'un autre côté, je dois convenir que une fonctionnalité comme celle-ci laisse beaucoup de place aux abus (comme dans "laissez-nous mettre beaucoup de texte dans le Java parce que maintenant nous pouvons bien le faire! "- voir le point suivant).
  • La question d'origine mentionne des "gros paragraphes" qui me conseillent de ne pas utiliser cette fonctionnalité du tout, mais d'externaliser ce contenu vers des fichiers de ressources.
  • À propos de la clarté et du fait que certains aspects "ne sont pas évidents pour le lecteur, nous avons donc une syntaxe avec un sens non évident". C'est en partie correct, et cela prend un peu de lecture et d'expérimentation alors que le matériel disponible n'est pas si vaste en ce moment. J'ai trouvé ceci: Guide du programmeur pour les blocs de texte , qui fournit beaucoup d'exemples. J'ai également écrit quelques exemples, celui sur les blocs de texte étant ici: TextBlocks.Java - j'espère que cela vous aidera.

Note pour le modérateur: Je sais que cette réponse viole potentiellement la directive (je ne réponds pas à la question et je réponds aux commentaires des autres utilisateurs), mais je pense qu'il devrait y avoir de la place pour un débat sur les sujets qui sont toujours en cours (n'oublions pas que les blocs de texte sont en mode 'second aperçu' ).

1
Chris T

paragraph.replaceAll("\\n","") devrait faire le travail pour vous.

0
Guillaume G