2009-10-19 5 views
0

J'essaie de trouver un tutoriel complet sur la mise en forme des chaînes dans Java.Besoin d'aide avec String.format

Je dois créer un reçu, comme ceci:

 
     HEADER IN MIDDLE 
'''''''''''''''''''''''''''''' 
Item1     Price 
Item2 x 5    Price 
Item3 that has a very 
long name....   Price 
'''''''''''''''''''''''''''''' 
Netprice:     xxx 
Grossprice:    xxx 
VAT:      xxx 
Shipping cost:   xxx 
Total:     xxx 
'''''''''''''''''''''''''''''' 
     FOOTER IN MIDDLE 

Répondre

0

chaîne de formattage est un peu compliqué ce qui, pour ce genre d'exigence. alors il vaut mieux opter pour un outil de reporting en utilisant le format que vous avez donné. ce qui serait la meilleure approche.

Soit un rapport de cristal ou d'autres qui sont faciles à mettre en œuvre.

+0

jamais entendu parler de tels outils, vous avez un lien? – Johannes

+0

ru en utilisant l'application Web ou Windows en Java – solairaja

+0

J'utilise Windows – Johannes

6

Le format de passer à string.format est documenté ici:

http://java.sun.com/j2se/1.5.0/docs/api/java/util/Formatter.html#syntax

Sur la page:

Le format de caractère général spécificateurs, et les types numériques ont le syntaxe suivante:

%[argument_index$][flags][width][.precision]conversion 

L'argument_index facultatif est un nombre entier décimal indiquant la position de l'argument dans la liste d'arguments . Le premier argument est référencé par « $ 1 », le second par « $ 2 », etc.

Les drapeaux en option est un ensemble de caractères qui modifient le format de sortie . L'ensemble des indicateurs valides dépend de lors de la conversion.

La largeur facultatif est un nombre entier décimal non négatif indiquant le nombre minimum de caractères à écrire dans la sortie.

La précision facultative est un entier décimal non négatif généralement utilisé pour limiter le nombre de caractères . Le comportement spécifique dépend de la conversion.

La conversion requise est un caractère indiquant comment l'argument doit être formaté . L'ensemble des conversions valides pour un argument donné dépend du type de données de l'argument.

0

Essayer de le faire avec le formatage d'une chaîne vous coûtera beaucoup de temps et de nerfs. Je suggère un moteur de modèle comme Stringtemplate ou quelque chose de similaire. En faisant cela, vous séparerez la présentation des données et ce sera une très bonne chose à long terme.

0

Oui comme solairaja a dit que si vous envisagez de créer des rapports ou des recettes que vous pouvez aller pour des outils de reporting comme rapports Crystal

Crystal ReportCrystal Report Tutorial

Ou si vous prévoyez utiliser StringFormatting lui-même alors "StringBuffer" serait la meilleure option car vous pouvez jouer avec.

0

Vous devriez probablement consulter les outils de création de modèles Java pour ce type de formatage de rapports multi-lignes.

Velocity est simple et tolérant des erreurs. Freemarker est très puissant mais plus intolérant. Je voudrais peut-être regarder Velocity initialement, et si vous devez faire plus de ce genre de travail, jetez un oeil à Freemarker.

0

On dirait que le conseil général de la communauté comme une meilleure approche pour résoudre votre problème utilise un outil de rapport.

Ici vous avez une liste détaillée des outils graphiques Java open source et d'information: http://java-source.net/open-source/charting-and-reporting

Le plus connu est, à mon avis, Jasper Reports. Beaucoup de ressources à ce sujet sont disponibles sur le web

Questions connexes