如何在Java中打印多个变量行

33

我正在尝试在Java中的一行打印语句中打印webdriver测试中使用的测试数据。

我需要在system.out.print函数(printf/println/任何其他函数)中打印类中使用的多个变量。

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);

我需要把它们作为打印语句输出:
名字: (我使用的变量值)
姓氏: (我使用的变量值)

像下面这样使用能得到正确的结果。
但我需要减少printf语句数量,使用更高效的方式。

System.out.printf("First Name: ", firstname);
System.out.printf("Last Name: ", lastname);

谢谢!


手头的问题与Selenium无关。移除这个标签(以及使用Selenium的代码部分),你将立即得到答案... - barak manos
5个回答

61

您可以使用1个printf来完成:

System.out.printf("First Name: %s\nLast Name: %s",firstname, lastname);

18

或者尝试这个:

System.out.println("First Name: " + firstname + " Last Name: "+ lastname +".");

祝你好运!


4
System.out.println("First Name: " + firstname);
System.out.println("Last Name: " + lastname);

或者

System.out.println(String.format("First Name: %s", firstname));
System.out.println(String.format("Last Name: %s", lastname));

谢谢。我能把这些行集成在一起,然后在一个system.out.println函数中打印所有内容吗?这是我的疑虑。 - Harshini

1
你可以创建一个类 Person,它有字段 firstNamelastName,并定义方法 toString()。这里我创建了一个实用方法,它返回一个 Person 对象的字符串表示形式。

这是一个示例。

Main

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();
    }
}

public class Person {

    private String firstName;
    private String lastName;

    //getters, setters, constructors.
}

我更喜欢使用单独的实用方法来代替toString(),因为toString()被用于调试。https://dev59.com/3XA65IYBdhLWcg3wzyL8#3615741 我有编写许多输出程序的经验:HTML界面、Excel或文本文件、控制台。它们可能需要不同的对象呈现方式,因此我创建了一个实用类,根据输出构建字符串。

0
假设我们有变量日期、月份和年份,那么我们可以在Java中这样写。
int date=15,month=4,year=2016;
System.out.println(date+ "/"+month+"/"+year);

输出将如下所示:

2016年4月15日


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接