J'essaie d'imprimer les données de test utilisées dans le test WebDriver à l'intérieur d'une ligne d'impression en Java.
J'ai besoin d'imprimer plusieurs variables utilisées dans une classe dans une fonction system.out.print
(printf/println/what).
Pouvez-vous m'aider?
public String firstname;
public String lastname;
firstname = "First " + genData.generateRandomAlphaNumeric(10);
driver.findElement(By.id("firstname")).sendKeys(firstname);
lastname = "Last " + genData.generateRandomAlphaNumeric(10);
driver.findElement(By.id("lastname")).sendKeys(lastname);
J'ai besoin de ces caractères dans une déclaration d'impression comme:
Prénom: (la valeur de variable que j'ai utilisée)
Nom: (la valeur de variable que j'ai utilisée)
Utiliser quelque chose comme ci-dessous donne le résultat exact.
Mais je dois réduire le nombre de lignes printf
et utiliser un moyen plus efficace.
System.out.printf("First Name: ", firstname);
System.out.printf("Last Name: ", lastname);
Merci!
Vous pouvez le faire avec 1 printf
:
System.out.printf("First Name: %s\nLast Name: %s",firstname, lastname);
Ou essayez celui-ci:
System.out.println("First Name: " + firstname + " Last Name: "+ lastname +".");
Bonne chance!
System.out.println("First Name: " + firstname);
System.out.println("Last Name: " + lastname);
ou
System.out.println(String.format("First Name: %s", firstname));
System.out.println(String.format("Last Name: %s", lastname));
Vous pouvez créer une classe Person
avec les champs firstName
et lastName
et définir la méthode toString()
. Ici, j'ai créé une méthode util qui retourne la présentation String d'un objet Person
.
Ceci est un échantillon
Principale
public class Main {
public static void main(String[] args) {
Person person = generatePerson();
String personStr = personToString(person);
System.out.println(personStr);
}
private static Person generatePerson() {
String firstName = "firstName";//generateFirstName();
String lastName = "lastName";//generateLastName;
return new Person(firstName, lastName);
}
/*
You can even put this method into a separate util class.
*/
private static String personToString(Person person) {
return person.getFirstName() + "\n" + person.getLastName();
}
}
La personne
public class Person {
private String firstName;
private String lastName;
//getters, setters, constructors.
}
Je préfère une méthode util distincte de toString()
, car toString()
est utilisé pour le débogage. https://stackoverflow.com/a/3615741/4587961
J'ai eu l'expérience d'écrire des programmes avec de nombreux résultats: interface utilisateur HTML, fichier Excel ou txt, console. Ils peuvent avoir besoin d'une présentation d'objet différente, j'ai donc créé une classe util qui construit une chaîne en fonction de la sortie.
Supposons que nous ayons une date, un mois et une année variables, nous pourrons l'écrire en Java comme ceci.
int date=15,month=4,year=2016;
System.out.println(date+ "/"+month+"/"+year);
la sortie de ce sera comme ci-dessous:
15/4/2016