在Java中,我使用标准Scanner和BufferedReader类进行输入,例如:
Scanner sc=new Scanner(System.in);
int a=sc.nextInt();
Run Code Online (Sandbox Code Playgroud)
或者
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
int a=Integer.parseInt(br.readLine());
Run Code Online (Sandbox Code Playgroud)
但是像这样获取输入需要大量的运行时间。我想知道更快的获取输入的方法。提前致谢
编辑:我见过像 uwi 这样的顶级 java 程序员,他们以非常不同的方式接受输入。他们有点创建自己的读者类别。我不明白他们的程序如何在运行时变得更快。
所以我有一个简单的 Scanner 对象:
Scanner scan = new Scanner (System.in);
Run Code Online (Sandbox Code Playgroud)
我试图在我在不同类中声明的方法中使用此 Scanner 对象。无论如何,这可以做到吗?我也尝试过使用:
public static final Scanner scan = new Scanner(System.in);
Run Code Online (Sandbox Code Playgroud)
但这并没有真正帮助
我编写了一个简单的程序,它生成 1 到 100 之间的随机数,并要求用户输入 1 到 100 之间的数字。如果该数字大于随机数,则会显示一条消息,说明它大于随机数,并且如果小于则显示相反的结果。用户只有 10 次机会猜出正确的数字。这是代码:
import java.util.Scanner;
public class Program {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int random_num = (int) (Math.random() * 100) + 1;
System.out.println("guess a number between 1 and 100");
boolean isCorrect = false;
for (int i = 1; i <= 10; i++) {
int input = sc.nextInt();
if (input > random_num)
System.out.println("It is less than " + input);
else if (input < random_num)
System.out.println("It is …Run Code Online (Sandbox Code Playgroud) 我不是java新手,但我无法弄清楚为什么我会收到此Scanner错误.代码编译很好,但我得到以下运行时错误
输入项目编号:java.util中java.util.Scanner.next(Scanner.java:1461)的java.util.Scanner.throwFor(Scanner.java:840)中的线程"main"java.util.InputMismatchException中的异常. Scanner.nextInt(Scanner.java:2091)位于TestInvoice.getValues的java.util.Scanner.nextInt(Scanner.java:2050)中(TestInvoice.java:3
import java.util.Scanner;
public class TestInvoice {
public static void main(String [] args)
{
/* create objects */
Invoice item1 = new Invoice();
Invoice item2 = new Invoice();
Invoice item3 = new Invoice();
/* get values */
getValues(item1);
getValues(item2);
getValues(item3);
/* print objects */
System.out.println(item1.toString() + "\n");
System.out.println(item2.toString() + "\n");
System.out.println(item3.toString() + "\n");
}
private static void getValues(Invoice invoice)
{
int number;
String name;
int quantity;
double price;
/* get values from user */
Scanner scanner = new …Run Code Online (Sandbox Code Playgroud) 我是编程新手,非常感谢你的帮助.一点点见解都会受到高度赞赏.我有以下代码的问题.该程序模拟计算器,但目前我主要关注if和else if语句.问题是,无论用户选择什么,程序将始终在代码中添加两个数字,即'number1'和'number2'
import java.util.*;
public class Input
{
private Scanner input;
public Input()
{
input = new Scanner(System.in);
}
public void calculation()
{
double number1, number2, answer;
String A, B, C, D, E;
String option;
A = "A"; B = "B"; C = "C"; D = "D"; E = "E"; //initialising the strings
System.out.println("add - option A \t (if your option is A, insert 'A')");
System.out.println("multiply - option B");
System.out.println("subtract - option C");
System.out.println("divide - option D");
System.out.println("power - …Run Code Online (Sandbox Code Playgroud) 这是我的班级:
public class class1{
public static void main(String[] args) {
File source = new File("E:\\NUS_WID_Tags\\All_Tags.txt");
File target = new File("fiche1Filtered3.txt");
int i=0;
try {
Scanner s = new Scanner(source);
PrintStream psStream= new PrintStream(target);
while (s.hasNext()) {
System.out.println(i++);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
Run Code Online (Sandbox Code Playgroud)
程序进入无限循环.
所以,我正在尝试继续我的长颈鹿计划(不要问).我希望用户为他们的长颈鹿命名,这应该是长颈鹿的名字.例如:
System.out.println("Name your giraffe.");
就像是:
Giraffes.somenewvariabletype scannerexample.nextLine() = Giraffes.Giraffe(parameter, parameter)
基本上我试图制作一个程序,允许教师为每个学生输入考试成绩,然后在他们输入成绩后,它给教师一个他们输入的所有成绩的总和
public static void grades(){
List<Integer> grade = new ArrayList<Integer>();
int gradetotal = IntStream.of(grades).sum;/* sum */
int gradelistnumber = 1;
int inputedgrade = 0;
while(inputedgrade != -1){
System.out.println("Enter Grade for student " + gradelistnumber + " (1-50): ");
inputedgrade = sc.nextInt();
grade.add(inputedgrade);
gradelistnumber++;
}
System.out.println("Class Average: " + gradetotal / 50 * 100);
}
Run Code Online (Sandbox Code Playgroud)
我正在试图弄清楚如何获得数组列表等级的总和.
我使用了scanner类来从给定的文本文件中获取输入.文件格式如下:
NAME: burma14
TYPE: TSP
COMMENT: 14-Staedte in Burma (Zaw Win)
DIMENSION: 5
EDGE_WEIGHT_TYPE: GEO
NODE_COORD_SECTION
1 16.47 96.10
2 16.47 94.44
3 20.09 92.54
4 22.39 93.37
5 25.23 97.24
Run Code Online (Sandbox Code Playgroud)
我的示例代码片段如下:
public static void main(String[] args) {
try
{
Scanner in = new Scanner(new File("burma14.tsp"));
String line = "";
int n;
//three comment lines
in.nextLine();
in.nextLine();
in.nextLine();
//get n
line = in.nextLine();
line = line.substring(11).trim();
n = Integer.parseInt(line);
City[] city= new City[n];
for (int i = 0; i < …Run Code Online (Sandbox Code Playgroud) 我试图弄清楚如何从文本文件中删除所有逗号,以便我可以在没有逗号的控制台中输出它.我的input.replace("[,]", "");陈述不起作用,我不知道如何解决它.
我很感激你的帮助.
文本文件:
75 Fresco, Al
67 Dwyer, Barb
55 Turner, Paige
108 Peace, Warren
46 Richman, Mary A.
37 Ware, Crystal
83 Carr, Dusty
15 Sledd, Bob
64 Sutton, Oliver
70 Mellow, Marsha
29 Case, Justin
35 Time, Justin
8 Shorts, Jim
20 Morris, Hugh
25 Vader, Ella
76 Bird, Earl E.
Run Code Online (Sandbox Code Playgroud)
我的代码:
import java.io.*;
import java.util.*;
public class Ex2 {
public static void main(String[] args) throws FileNotFoundException {
Scanner input = new Scanner(new File("people.txt"));
while …Run Code Online (Sandbox Code Playgroud) java ×10
arrays ×2
arraylist ×1
if-statement ×1
input ×1
loops ×1
println ×1
sum ×1
text-files ×1
user-input ×1
variables ×1