Как сделать печать Python в Java? - PullRequest
0 голосов
/ 14 июля 2020

В последнее время я делал последние программы с Java, Python и C, пока все еще изучал Ruby и Swift, и меня интересовало создание функций печати на разных языках, например Python print, Java System.out.println, C printf и C ++ cout.

Я хочу выполнить программу «Привет, (пользователь)» из Python, например:

user = input("What is your name? ")
print(f"Hello, {user}.")

И создайте программу на Java с той же функцией печати. ​​

public static void main {
    Scanner user;
    print("What is your name? ");
    user = new Scanner(System.in);
    // print("Hello, ", user, ".");
    print(f"Hello, {user}.")
}

Я хочу использовать формат f для добавления переменных в функции печати вместо конкатенации (комментарий в программе Java). Я пока не знаю, как это сделать, кроме предыдущей формы, так что у меня все еще не было попыток. Возможен ли здесь формат f? Можно ли воссоздать его только на другом языке? Или надо вообще не делать функцию?

Ответы [ 3 ]

2 голосов
/ 14 июля 2020

Вы делаете это в python

print("hello {0} and welcome to {1}".format(user, something)) 
# 0 is the index of the variable just like a list

А это в java

System.out.println(String.format("A String %s %2d", user, intVar); 
// Its print-L-n not print-i-n
// you can use this in python too %s for strings and %d for integers

Python тоже

print("%s is %d y/o" %(name, age))

% s - Строка (или любой объект со строковым представлением, например числа) и итераторы

% d - Целые числа

% f - Числа с плавающей запятой

%. F - Плавающие номера точек с фиксированным количеством цифр справа от точки.

% x /% X - целые числа в шестнадцатеричном представлении (нижний / верхний регистр)

И суффикс f в python пока не важно, посмотрите, если хотите знать

https://www.python.org/dev/peps/pep-0498/

1 голос
/ 14 июля 2020

Учитывая код Python

user = input("What is your name? ")
print(f"Hello, {user}.")

, эквивалент Java будет

public static void main(String[] args) {
    try (Scanner scanner = new Scanner(System.in)) {
        System.out.print("What is your name? ");
        String user = scanner.nextLine();
        System.out.printf("Hello, %s.%n", user);
    }
}

Чтобы напечатать отформатированную строку, вы должны использовать printf, где вы можете использовать строку формата , как описано в разделе Синтаксис строки формата класса Formatter .

так называемые строковые литералы в формате (f-строки) были введены только с Python 3.6 ( PEP 498 ), и для них нет эквивалента Java (в последней версии Java 14).

(Java также имеет MessageFormat , который использует другое соглашение о форматировании, см. Также В чем разница между MessageFormat.format и String.format)

0 голосов
/ 20 июля 2020

Нет такого способа сделать функцию печати в Java, но эквивалент вашего кода следующий:

public static void main(String[] args) {
    System.out.print("What's your name? ");
    Scanner name = new Scanner(System.in);
    System.out.println("Hello, " + name);
}

Однако более возможный способ сделать функцию печати выглядит следующим образом:

static void print(String a) {
    System.out.println(a)
}

Да, вместо строк f есть конкатенация, но это все, что я могу предоставить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...