我得到以下代码:
int nnames;
String names[];
System.out.print("How many names are you going to save: ");
Scanner in = new Scanner(System.in);
nnames = in.nextInt();
names = new String[nnames];
for (int i = 0; i < names.length; i++){
System.out.print("Type a name: ");
names[i] = in.next();
}
System.out.println(names[0]);
Run Code Online (Sandbox Code Playgroud)
当我运行此代码时,扫描程序将只选取名字而不是姓氏.在尝试输入名称时有时会跳过一行,它会显示为我将名称留空并跳到下一个名称.我不知道是什么造成了这种情况.
我希望有一个人可以帮助我!
编辑:我试过in.nextLine(); 它修复了完整的名称,但它仍然保持一行,这是输出的一个例子:
How many names are you going to save: 3
Type a name: Type a name: John Doe
Type a name: John Lennon
Run Code Online (Sandbox Code Playgroud) 我有一个非常大的文本文件,我需要从最近的某个地方收集数据.也许Scanner并不是最好的方法,但是在获取我感兴趣的文件部分之前从顶部开始并抓住6000行是非常浪费的.有没有办法告诉Scanner跳转到比如文件的7/8或从底部开始向上扫描并逐行抓取?
谢谢
好吧,非常菜鸟的问题。我正在制作一个CLI应用程序,使用户可以设计调查。他们首先输入问题,然后输入选择的数量和选择。我正在使用扫描仪来获取输入,由于某种原因,它允许用户输入大多数内容,但不能输入问题的内容。下面的代码段。
String title = "";
Question[] questions;
int noOfQuestions = 0;
int[] noOfChoices;
Scanner entry = new Scanner(System.in);
System.out.println("Please enter the title of the survey: ");
title = entry.nextLine();
System.out.println("Please enter the number of questions: ");
noOfQuestions = entry.nextInt();
noOfChoices = new int[noOfQuestions];
questions = new Question[noOfQuestions];
for (int i = 0; i < noOfQuestions; i++) {
questions[i] = new Question();
}
for (int i = 0; i < noOfQuestions; i++) {
System.out.println("Please enter the text of question " + …Run Code Online (Sandbox Code Playgroud) 我有这种格式的输入文本文件:
<target1> : <dep1> <dep2> ...
<target2> : <dep1> <dep2> ...
...
Run Code Online (Sandbox Code Playgroud)
以及一个采用两个参数的方法
function(target, dep);
Run Code Online (Sandbox Code Playgroud)
我需要让这个解析来调用我的方法与每个目标和dep,例如:
function(target1, dep1);
function(target1, dep2);
function(target1, ...);
function(target2, dep1);
function(target2, dep2);
function(target2, ...);
Run Code Online (Sandbox Code Playgroud)
调用function(target,dep)文本文件的每一行最有效的方法是什么?我试过用扫描仪和string.split搞错,但没有成功.我很难过.
谢谢.
在java中,我需要从"http://www.mysite.com/text.txt"到扫描器获取什么代码,该扫描器以尽可能少的行解析站点中包含的结果文本.
我有一个包含许多文件的目录 - 每个文件都有超过800行.Hovewer,当我尝试使用Scanner阅读它时,它似乎是空的.
File f1 = new File("data/cityDistances/a.txt"),
f2 = new File("data/cityDistances/b.txt");
System.out.println(f1.exists() && f2.exists()); //return true
System.out.println(f1.getTotalSpace() > 0 && f2.getTotalSpace() > 0); //return true
Scanner in = new Scanner(f1);
System.out.println(in.hasNext()); // return false;
System.out.println(in.hasNextLine()); //return false;
Run Code Online (Sandbox Code Playgroud)
为什么它会像那样?
我已成功使用它BufferedReader.尽管如此,它似乎更奇怪的是BufferedReader工作和Scanner没有.
像Java的扫描仪那样在D中是否有流解析器?在哪里你可以nextInt()去取一个int和nextLong()一个long等等.
这是我的代码
Scanner keyboard = new Scanner(System.in);
System.out.print("Last name: ");
lastName = keyboard.nextLine();
System.out.print("First name: ");
firstName = keyboard.nextLine();
System.out.print("Email address: ");
emailAddress = keyboard.nextLine();
System.out.print("Username: ");
username = keyboard.nextLine();
Run Code Online (Sandbox Code Playgroud)
它输出这个
Last name: First name:
Run Code Online (Sandbox Code Playgroud)
基本上它跳过让我进入lastName并直接进入提示firstName.
但是,如果我使用keyboard.next()而不是keyboard.nextLine(),它工作正常.有什么想法吗?
我在尝试解决递归任务时遇到了麻烦,但没有成功.
分配的目标是调用函数
reverseNumbers(new Scanner("11 23 31 49 56 611"))
Run Code Online (Sandbox Code Playgroud)
并获得输出
"611 56 49 31 23 11"
Run Code Online (Sandbox Code Playgroud)
虽然不允许使用数组,列表,字符串和方法应该只声明一个变量.
我写的代码不起作用.我收到了一个StackOverflow错误,我明白为什么会这样.这是因为参数scan不会改变,并且必须使递归起作用.但是,我不知道如何使用Scanner实用程序中提供的工具更改输入参数.
public static String reverseNumbers(Scanner scan){
if (!scan.hasNext()) {
return "";
}
else {
return reverseNumbers(scan) + " " + scan.nextInt();
}
}
Run Code Online (Sandbox Code Playgroud) 我已经跟踪了这段代码,无法弄清楚如何修复它.运行代码时,为什么不提示用户输入而不是Java确定没有输入?错误跟踪如下.
import java.util.*;
public class SortAsInserted {
public static void main(String[] args) {
int array_size = GetArraySize();
//System.out.println(array_size);
String[] myArray = new String[array_size];
for (int i = 0; i < array_size; i++){
String next_string = GetNextString();
System.out.println(next_string);
}
}
//public static String[] SortInsert(String nextString){
//}
public static int GetArraySize(){
Scanner input = new Scanner(System.in);
System.out.print("How many items are you entering?: ");
int items_in_array = input.nextInt();
input.close();
return items_in_array;
}
public static void PrintArray(String[] x) {
for (int i = 0; …Run Code Online (Sandbox Code Playgroud)