-6

Помогите конвертировать код из python в java

def main():
 username = input("Please enter your name, and I'll convert it to a number: ")
 usernumber = 0 # initialize
 for character in username:
 # convert to lower case...
 # convert to ordinal form
 # subtract so that a = 1
 # add to total
 if character != " ":
 usernumber = usernumber + ord(character.lower()) - 96
 print(usernumber)
if __name__ == "__main__":
 main()
задан 7 апр. 2018 в 5:15
2
  • Есть код где вы пытались перевести это, но у вас что то не получилось? Commented 7 апр. 2018 в 6:35
  • цикл можно записать: sum(ord(c) - ord('a') + 1 for c in username.casefold() if not c.isspace()) Для не-ascii букв, не ясно зачем 'a' вычитать. Может вы просто хотите: hash(username.casefold()) Commented 7 апр. 2018 в 8:34

1 ответ 1

2

В java 8 это может выглядеть как-то так:

import java.util.Scanner;
public class Example {
 public static void main(String[] args) {
 int userNumber = getUserName()
 .chars()
 .filter(c -> c != ' ')
 .map(Character::toLowerCase)
 .map(c -> c - 92)
 .sum();
 System.out.println(userNumber);
 }
 private static String getUserName() {
 System.out.println("Please enter your name, and I'll convert it to a number: ");
 Scanner scanner = new Scanner(System.in);
 String userName = scanner.next();
 scanner.close();
 return userName;
 }
}

Если более старая версия, то метод main можно заменить на такой:

public static void main(String[] args) {
 int userNumber = 0;
 for (char character : getUserName().toCharArray()) {
 if (character != ' ') {
 userNumber += Character.toLowerCase(character) - 92;
 }
 }
 System.out.println(userNumber);
}
ответ дан 7 апр. 2018 в 8:13

Ваш ответ

Черновик сохранён
Черновик удалён

Зарегистрируйтесь или войдите

Регистрация через Google
Регистрация через почту

Отправить без регистрации

Необходима, но никому не показывается

Отправить без регистрации

Необходима, но никому не показывается

Нажимая «Отправить ответ», вы соглашаетесь с условиями пользования и подтверждаете, что прочитали политику конфиденциальности.

Начните задавать вопросы и получать на них ответы

Найдите ответ на свой вопрос, задав его.

Задать вопрос

Изучите связанные вопросы

Посмотрите похожие вопросы с этими метками.