Java impression d'une chaîne de caractères contenant de multiples entiers
Juste de commencer l'apprentissage de java aujourd'hui et ne semblent pas le comprendre. Je suis le tutoriel sur learnjavaonline.org qui vous apprend quelques petites choses et vous demande alors d'écrire un code pour faire une chose en particulier, il vérifie ensuite la sortie pour voir si sa bonne. La chose est, si ce n'est pas correct, il ne dit pas pourquoi, ou vous donner un exemple de code correct.
Il veut de moi, à la sortie d'une chaîne en disant: "H3110 w0r1d 2.0 vrai" à l'aide de toutes les primitives
je suis venu avec cette
public class Main {
public static void main(String[] args) {
char h = 'H';
byte three = 3;
short one = 1;
boolean t = true;
double ten = 10;
float two = (float) 2.0;
long won = 1;
int zero = 0;
String output = h + three + one + ten + " " + "w" + zero + "r" + won + "d " + two + " " + t;
System.out.println(output);
}
}
mais elle renvoie 86.0 w0r1d 2.0 true
comment puis-je faire afin de ne pas ajouter tous les nombres entiers, mais les affiche consécutivement?
OriginalL'auteur user2650243 | 2013-08-04
Vous devez vous connecter pour publier un commentaire.
Vous pouvez convertir vos chiffres dans une chaîne de caractères à l'aide de la toString ou valueOf méthodes de la classes wrapper (suppose que vous n'y êtes pas encore), ou juste des trucs tous vos primitives dans le printline sans
String output
.Tout ce que vous devez rechercher est qu'il y est une Chaîne de caractères dans le printline déclaration. Signification si vous ne souhaitez imprimer que notre nombre en fonction du type de données que vous pouvez utiliser
system.out.println("" + youNumberVariable)
.Il y aurait également la possibilité d'ajouter une chaîne vide au début de votre déclaration de sortie
output = "" + theRest;
pour forcer toutes les valeurs suivantes dans la chaîne comme il le fait dans le printline déclaration.La plupart de c'est pas très jolie de codage mais tout à fait suffisant pour le processus d'apprentissage.
OriginalL'auteur Akunosh
Le problème avec cette ligne:
est que les opérations sont effectuées de gauche à droite, de sorte qu'il premières sommes
h + three
(qui renvoie à unint
) et puisone
et puisten
. Jusqu'à ce point que vous avez une valeur numérique (unint
) qui seront ensuite "résumé" d'uneString
. Essayez quelque chose comme ceci:Dans ce deuxième cas, votre expression va commencer avec un
String
objet, d'évaluer le reste des opérations en tant queString
s.Bien sûr, vous pourriez utiliser
""
au début ou à toute autre valeur qui donneString
, commeString.valueOf(h)
. Dans ce dernier cas, vous n'avez pas besoin d'utiliserString.valueOf()
pour les autres opérandes, que le premier est déjà une Chaîne de caractères.Vous pouvez utiliser
String.valueOf(h)
(juste pour la première valeur, pas tous d'entre eux), donc vous allez commencer votre expression avec une Chaîne sans utiliser "". Je vais mettre à jour ma réponse avec ce.OriginalL'auteur morgano
Facile et vilaine façon de le faire serait d'utiliser
String.valueOf
pour chaque valeur numérique.Comme dans:
Modifier
morganos'approche est parfaitement valide en tant que bien +1 pour l'.
Sur un sujet plus général, vous pouvez utiliser
String.concat
pourString
concaténation, ou encore mieux, unStringBuilder
objet.Cette SI la page contient beaucoup d'informations que vous pouvez utiliser sur la question.
OriginalL'auteur Mena
Je voudrais utiliser des chaînes de caractères.valueOf pour convertir explicitement chaque valeur numérique à la Chaîne avant d'être ajoutés. Comme:
OriginalL'auteur Mark Nenadov
L'astuce consiste à obtenir le compilateur pour interpréter
+
comme la concaténation de chaîne (qui est ensuite silencieusement convertir les nombres en chaînes) au lieu d'ajouter deux nombres. Cela signifie que l'un des deux arguments de+
doit être une chaîne de caractères, et non pas - comme vos trois premiers arguments - nombres (et oui, un char est un nombre).Il n'est pas typique dans le code de la nature pour que les numéros à être directement adjacents les uns aux autres, mais avoir un espace entre eux, comme:
Si vous voulez vraiment avoir aucun espace, puis il suffit de laisser le premier argument une chaîne de caractères vide:
Vous pourriez tout aussi bien changer de h à partir de char à Chaîne.
OriginalL'auteur Thorbjørn Ravn Andersen
Alors que cet extrait de code, peut-être de résoudre la question, y compris une explication aide vraiment à améliorer la qualité de votre post. Rappelez-vous que vous répondez à la question pour les lecteurs dans l'avenir, et ces personnes pourraient ne pas connaître les raisons de votre code suggestion. Veuillez aussi essayer de ne pas surcharger le code avec des notes explicatives, ce qui réduit la lisibilité à la fois le code et les explications!
OriginalL'auteur brj