Je lis le tampon série avec la méthode readline (). La chaîne renvoyée par readline () est dans le format "STR1: STR2". Dans une boucle tandis que lorsque j'utilise readline () Nombre de fois pour une réponse de la commande de port série, je reçois une sortie bizarre comme ceci: mais j'ai besoin de la sortie formatée ci-dessous p> String1 : string1
SString11 : String2
StringString2 : String23
String4 : String5
3 Réponses :
Jetez un coup d'œil à System.out. Printf P>
J'ai utilisé string.format () et ça a fonctionné. Mais un autre problème est là. Problème est que je place la chaîne de sortie dans une instance JTextarea. J'ai choisi la police comme Arial. Lorsqu'il est imprimé comme cette chaîne.format ("% - 30s:% 30s", TEMP [0], TEMP [1]); Il imprime comme nom d'image: Version du micrologiciel de base Linux: 2.1.1.17 Dans les deux lignes ci-dessus "I" dans l'image des mots et "V" dans la version Word a une largeur différente de la zone de texte. Donc, même si j'utilise 30 chaîne de caractères, les colons ne sont pas alignés. Existe-t-il une solution à ça?
Jetez un coup d'oeil à java.awt.fontmetrics (peut-être ... été depuis longtemps depuis que je me souciais de la largeur d'un champ de texte / zone :-)
Vous devez utiliser une police telle que Courrier, cela est appelé une police «monospaçée», ce qui signifie que tous les caractères ont une largeur égale. Cela signifierait bien sûr que si vous les personnages alignez dans la chaîne, il alignerait également sur la sortie de l'OUPUT.
Le moyen le plus simple d'y parvenir est d'utiliser system.out.format () em>. Cela vous permet d'utiliser des spécificateurs de format de style C em>. Un exemple: Name : Nemo
Age : 120
Merci d'avoir répondu. Puis-je obtenir la sortie formatée stockée dans une chaîne au lieu d'envoyer à System.out Flux? Y a-t-il une API?
Vous pouvez utiliser string.format () de la même manière que System.out.Format () pour obtenir le résultat en tant que chaîne.
+1 pour la liaison à java.Util.formatter.formateur qui est éventuellement plus utile pour l'affiche de la question que le format System.out () ou le fichier printf () tel qu'il peut formater aux flux arbitraires et que ce n'est pas clair dans la publication de la destination de la sortie est.
@Surjya Narayana Padhi Pour obtenir la sortie formatée stockée dans une chaîne, utilisez String.Format ().
J'ai utilisé string.format () et ça a fonctionné. Mais un autre problème est là. Problème est que je place la chaîne de sortie dans une instance JTextarea. J'ai choisi la police comme Arial. Lorsqu'il est imprimé comme cette chaîne.format ("% - 30s:% 30s", TEMP [0], TEMP [1]); Il imprime comme nom d'image: Version du micrologiciel de base Linux: 2.1.1.17 Dans les deux lignes ci-dessus "I" dans l'image des mots et "V" dans la version Word a une largeur différente de la zone de texte. Donc, même si j'utilise 30 chaîne de caractères, les colons ne sont pas alignés. Existe-t-il une solution à ça?
Utilisé une police de largeur fixe comme Courrier Nouveau, Console Lucida, Bitstream Vera Sans Mono, Consolas, etc.
système.out.format ("% 30:% s", str1, str2); p>
Imprimera la première chaîne avec une largeur fixe de 30 caractères. p>
J'aime la bonne justification du premier paramètre ici!