我正在使用Scanner从文本文件中读取一些基本文件.
前5个条目是这个 -
0 MR2Spyder
1 Tundra
3 Echo
3 Yaris
4 ScionxB
4 ScionxD
Run Code Online (Sandbox Code Playgroud)
我正常实例化扫描仪,然后执行此操作 -
String line = scanner.nextLine();
System.out.println(line);
Run Code Online (Sandbox Code Playgroud)
然后我得到这个输出 -
ÿþ0 M R 2 S p y d e r
Run Code Online (Sandbox Code Playgroud)
这对我来说没有意义 - Scanner类有问题吗?我应该使用BufferedReader吗?
有没有办法压缩try/catch块代码?现在,我的代码在try/catch代码中有一个try/catch代码.
if(petType.equals("DOG")) {
try {
String name = input.next();
String owner = input.next();
double weight = input.nextDouble();
SimpleDateFormat stdDate = new SimpleDateFormat("MM/dd/yy");
try {
Date vaccineDate = stdDate.parse(input.next());
boolean fixed = input.nextBoolean();
Dog x = new Dog(name,owner,weight,vaccineDate,fixed);
object.addPet(x);
}
catch (ParseException ex) {
System.out.println("ERROR - Vaccine date " + input.next() + " is not in mm/dd/yy format!");
input.nextLine();
}
}
catch(NoSuchElementException ex) {
System.out.println("ERROR - Missing fields. Skipping line " + lineNumber + "...");
input.nextLine();
}
}
Run Code Online (Sandbox Code Playgroud) java exception-handling exception try-catch java.util.scanner
我有一个扫描仪从文本文件中读取.当它到达文件中的某一行时,我希望能够调用一个方法,该方法将Scanner用作当前状态的参数 - 例如,我希望扫描程序(以及使用的文件)在它到底是什么线.
public static void createEntry(File list, int mediaTypeNum, String mediaType) throws FileNotFoundException {
Scanner mediaReader = new Scanner(list);
int occurrence = mediaTypeNum;
int scannerCounter = 0;
String match;
String title = "";
String director = "";
while (mediaReader.hasNext() && scannerCounter < occurrence) {
match = mediaReader.nextLine();
if (match.equalsIgnoreCase(mediaType)) {
scannerCounter++;
if (scannerCounter == occurrence) {
// based on type, create the media object
// createMediaObject(list, mediaReader, mediaType)
title = mediaReader.nextLine();
director = mediaReader.nextLine();
}
}
}
Run Code Online (Sandbox Code Playgroud)
createMediaObject()将有一个switch case,根据具体情况,Scanner将读取一些以下行,直到有一个空行.对于每种媒体类型,行数不同. …
我有一个从扫描仪读取的输入,然后我将其与硬编码的字符串变量进行比较
String MOVE = input.next(); // I type in "MOVE N"
MOVE = MOVE.trim();
System.out.print(MOVE.equals("MOVE N"));
Run Code Online (Sandbox Code Playgroud)
这返回了false.我添加了trim()
String MOVE = input.next(); // I type in "MOVE N"
System.out.print(MOVE.equals("MOVE N"));
Run Code Online (Sandbox Code Playgroud)
还是假的.
有任何想法吗?谢谢
我应该制作一个程序,不断接受桌面订单数据,并显示超过36英寸长,至少有一个抽屉的橡木书桌的所有相关信息.
import java.util.*;
public class MangMaxB
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
char ans;
int orderNum=0, length=0, width=0, numDrawer=0, price=1000;
String name;
System.out.print("Do you wish to enter Oak " +
"desk order data? (y/n)");
ans = input.nextLine().charAt(0);
while (ans != 'n')
{
System.out.print("Enter customer name: ");
name=input.nextLine();
System.out.print("Enter order number: ");
orderNum=input.nextInt();
System.out.print("Enter length and width of Oak desk" +
" separated by a space: ");
length = input.nextInt();
width = input.nextInt();
System.out.print("Enter number …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用BufferedReader和Scanner从文件中读取一行.我可以创造这两个没问题.我要做的是读一行,计算该行中逗号的数量,然后返回并抓住每个单独的项目.所以如果文件看起来像这样:
项目1,项目2,项目3,等等.
ITEM4,ITEM5,ITEM6等.
该程序将返回有四个逗号,然后返回并一次获得一个项目.它将重复下一行.返回逗号的数量对我的程序至关重要,否则,我只会使用Scanner.useDelimiter()方法.我也不知道如何返回到行的开头来抓取每个项目.
我的代码有问题,我总是得到这个错误:
Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Scanner.java:907)
at java.util.Scanner.next(Scanner.java:1416)
at audio.AudioSecrets.main(AudioSecrets.java:32)
Java Result: 1
Run Code Online (Sandbox Code Playgroud)
我的问题是这个ligne:
contents = new Scanner(file).useDelimiter("\\Z").next().toCharArray(); //
Run Code Online (Sandbox Code Playgroud)
\\Z与之结合的分隔符.next()将读取输入,直到没有任何左边.
如何将文件输入我的程序,谢谢你的帮助
该程序在循环中进入无限循环.拜托,有人可以告诉我为什么吗?
import java.util.Scanner;
public class program {
public static void main(String[] pars) {
System.out.println("Insert something.");
Scanner read = new Scanner(System.in);
String s = "";
while(read.hasNext()) {
System.out.println(read.next());
}
System.out.println("End of program");
}
}
Run Code Online (Sandbox Code Playgroud) 我有这个方法:
public String scanInput()
{
String input = "";
Scanner skanner = new Scanner(System.in);
while(skanner.hasNextLine()){
input = skanner.nextLine();
}
skanner.close();
return input;
}
Run Code Online (Sandbox Code Playgroud)
第一次运行此方法时,程序停止,并且在进行操作之前,系统会提示我在控制台中输入一个输入.但是,第二次运行该方法时,它会在没有暂停的情况下闪烁,并且我的程序陷入无限循环.
此方法中的哪一行使程序暂停,为什么它只在第一次暂停?
用户可以选择要扫描的文件,但是在运行时没有打印任何文件的内容,有什么帮助吗?
public void readVehicleData(){
FileDialog fileBox = new FileDialog(mainWindow,"Open", FileDialog.LOAD);
fileBox.setVisible(true);
fileBox.setDirectory(".");
String dataFile = fileBox.getFile();
Scanner scanner = new Scanner(dataFile);
while( scanner.hasNext() )
{
String lineOfInput = scanner.nextLine();
System.out.println(lineOfInput);
}
scanner.close();
}
Run Code Online (Sandbox Code Playgroud)