Строка переменной строки java
Я получаю некоторый странный вывод при запуске (казалось бы, простого) кода. Вот что у меня есть:
import java.util.Scanner;
public class TestApplication {
public static void main(String[] args) {
System.out.println("Enter a password: ");
Scanner input = new Scanner(System.in);
input.next();
String s = input.toString();
System.out.println(s);
}
}
И результат, который я получаю после компиляции, выглядит так:
Enter a password:
hello
java.util.Scanner[delimiters=\p{javaWhitespace}+][position=5][match valid=true][need input=false][source closed=false][skipped=false][group separator=\,][decimal separator=\.][positive prefix=][negative prefix=\Q-\E][positive suffix=][negative suffix=][NaN string=\Q�\E][infinity string=\Q∞\E]
Какой вид странный. Что происходит и как мне печатать значение s
?
Ответы
Ответ 1
Вы получаете значение toString()
, возвращаемое самим объектом Scanner, которое не является тем, что вы хотите, а не тем, как вы используете объект Scanner. Вместо этого вам нужны данные, полученные объектом Scanner. Например,
Scanner input = new Scanner(System.in);
String data = input.nextLine();
System.out.println(data);
Прочтите учебник о том, как его использовать, поскольку он объяснит все.
Edit
Посмотрите здесь: Учебник по сканеру
Также ознакомьтесь с API-интерфейсом сканера, который объяснит некоторые из тонкостей методов и свойств сканера.
Ответ 2
input.next();
String s = input.toString();
измените его на
String s = input.next();
Возможно, это то, что вы пытались сделать.
Ответ 3
Скорее всего, вы получите то, что хотите:
Scanner input = new Scanner(System.in);
String s = input.next();
System.out.println(s);
Ответ 4
Вы печатаете неправильное значение. Вместо этого, если строка вы печатаете объект сканера. Попробуйте это
Scanner input = new Scanner(System.in);
String s = input.next();
System.out.println(s);
Ответ 5
Вы также можете использовать BufferedReader:
import java.io.*;
public class TestApplication {
public static void main (String[] args) {
System.out.print("Enter a password: ");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String password = null;
try {
password = br.readLine();
} catch (IOException e) {
System.out.println("IO error trying to read your password!");
System.exit(1);
}
System.out.println("Successfully read your password.");
}
}