Я догадываюсь, что я очень опаздываю на вечеринку ..
Как было сказано ранее, вызов input.nextLine() после получения вашего значения int решит вашу проблему. Причина, по которой ваш код не работал, заключается в том, что с вашего ввода (куда вы ввели int) ничего не оставалось хранить в string1.
Рассмотрим следующийLine () как нечетный среди методов nextFoo () в классе Scanner. Давайте возьмем быстрый пример. Скажем, у нас есть две строки кода, подобные приведенным ниже:
int firstNumber = input.nextInt();
int secondNumber = input.nextInt();
Если мы вводим значение ниже (как одну строку ввода)
54 234Значение нашей переменной firstNumber и secondNumber становится 54 и 234 соответственно. Причина этого заключается в том, что новый канал ( nextLine () ) НЕ автоматически генерируется, когда метод nextInt () принимает значения. Он просто берет «следующий int» и движется дальше. Это то же самое для остальных методов nextFoo (), за исключением nextLine ().
nextLine () генерирует новый поток строк сразу после принятия значения; это означает, что @RohitJain означает, что новый поток строк «потребляется».
Наконец, метод next () просто берет ближайшую строку IS NOT , генерируя новую строку; это делает это предпочтительным методом для взятия отдельных строк в одной и той же строке.
Надеюсь, это поможет ... Веселая кодировка!
В swift интерполяция строк выполняется с помощью \()
в строках. Например:
let x = 10
let string = "x equals \(x) and you can also put expressions here \(5*2)"
, поэтому для вашего примера выполните:
var age:Int=1
var pet:String="dog"
lblOutput.text = "Your \(pet) is \(age) years old!"