我正在尝试从文件中读取行并将每个值单独存储在一个数组中.它似乎很好地读取了前两个标题行,但只是为所有内容返回null.我使用方法来转换一些变量,但即使我从文件中读取纯int,它只返回"0",这是没有意义的,因为它似乎是通过文件读取没有问题使用相同的基本在以前的项目中的方法(但没有数组).这是我的代码:
package prog9;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.text.NumberFormat;
import java.util.Scanner;
public class Main {
private static String firstline;
private static String secondline;
public static void main(String[] args) throws IOException {
File file = new File("files/PortlandWeather2011.txt");
int count = 0;
BufferedReader reader2 = new BufferedReader(new FileReader(file));
while (reader2.readLine() != null)
count++;
reader2.close();
Scanner reader = new Scanner(file);
String prcp[] = new String[count];
String snow[] = new String[count];
String snwd[] = new String[count];
String tmin[] = new …Run Code Online (Sandbox Code Playgroud) 可能重复:
如何比较Java中的字符串?
我正在研究一个小程序,用你的名字询问你的名字Scanner.如果你输入blankstring,那么我希望控制台显示一条消息.
这是我尝试做的事情:
import java.util.Scanner;
public class Adventure
{
public static void main(String[] args)
{
Scanner myScan = new Scanner (System.in);
System.out.println("What's your name?");
String name = myScan.nextLine();
while (!(name == "")) //Always returns false.
{
System.out.println("That's not your name. Please try again.");
name = myScan.nextLine();
}
System.out.println("It's a pleasure to meet you, " + name + ".");
}
}
Run Code Online (Sandbox Code Playgroud)
代码永远不会进入while循环.为什么?
在那里我正在制作这个应用程序来改变字幕文件.当我测试它时,我遇到了一个奇怪的问题,当我在非英语(例如波斯语)上测试它时程序将无法读取该文件.这就是我在程序中阅读字幕的方式:
Scanner sub = null;
try {
sub = new Scanner(new File(address));
} catch (FileNotFoundException ex) {
ex.printStackTrace();
}
while(sub.hasNext()){
String sentence = sub.nextLine();
//some magical stuff here :)
}
Run Code Online (Sandbox Code Playgroud)
其中address是.srt文件的String保存位置.
我应该怎么做才能让程序读取文件?
我打印不同的选项,用户输入一个数字来选择正确的选项.它第一次工作,但是当选择一个选项时,它会根据所选选项打印不同的选项.当用户尝试从第二个打印列表中选择一个选项时,程序会陷入无限循环.
protected int getIntegerInput(Scanner scan) {
while (! scan.hasNextInt())
;
return scan.nextInt();
}
protected <T> int getChoice(String description, List<T> list) {
printPosibilities(description, list);
while (true) {
try (Scanner scan = new Scanner(System.in)) {
int choice = getIntegerInput(scan) - 1;
scan.close();
if (isValidChoice(choice, list)) {
if (choice == list.size()) {
System.out.println("Canceled.");
return CANCEL;
}
return choice;
} else
throw new IllegalArgumentException();
} catch (InputMismatchException | IllegalArgumentException e) {
printInvalidChoice();
}
}
}
Run Code Online (Sandbox Code Playgroud)
它在getIntegerInput()中陷入困境.在打印可能的选项时调用getChoice().
编辑 我修好了.您需要删除该尝试,因为它会自动关闭扫描仪.而while循环中的scan.next().
此代码提示用户通过键入Y或N(是/否)来确认预订.如果他们输入y或Y,它会调用一个方法setBooked(),该方法基本上只是将boolean变量"预订"设置为"真".在isBooked()刚刚返回boolean值,所以我可以之前测试/后,看它是否实际工作.
实际的代码确实没有像我预期的那样工作,如果你键入"y"它会立即正常工作但是如果你输入任何其他东西它会再次提示你,如果你键入"y"再次工作但是这次你键入任何东西否则它会停止并转移到下一个"客户"(方法被称为约8次)
所以基本上有一个原因是它提示用户两次而不是仅仅评估他们第一次输入"y"或"Y"的内容?
System.out.println(customer.isBooked());
System.out.println( "Confirm booking for " + customer.getName() + "(Y/N)");
Scanner scan = new Scanner(System.in);
if (scan.nextLine().equals("y") || scan.nextLine().equals("Y"))
customer.setBooked();
System.out.println("Booked");
System.out.println(customer.isBooked());
Run Code Online (Sandbox Code Playgroud) 我刚刚开始学习java,我想制作一个简单的程序,它要求人名,然后输出名称然后询问他们喜欢的号码.然后它会将它们的数字与数字6进行比较,并根据数字是大于还是小于6来输出.
我在Netbeans中收到一个"String to int convert"错误,这与扫描程序有关.希望我正确地问这个问题,但我怎样才能使扫描仪拾取整数?谢谢
package javaapplication2;
import java.util.Scanner;
import java.lang.String;
public class JavaApplication2 {
public static void main(String[] args) {
// Creating an instance of the scanner class.
// Gets name and numbers.
Scanner getName = new Scanner(System.in);
Scanner getNumber = new Scanner(System.in);
//Holds name and number
String userName;
int userNumber;
// Asks for the users name.
// Holds name in userName.
System.out.println("What is your name?");
userName = getName.nextLine();
//Reponds with the users name.
System.out.println("Hello" + userName + "!"); …Run Code Online (Sandbox Code Playgroud) 我有一个像这样的int的Scanner
Scanner telnumscanner = new Scanner(System.in);
System.out.print("Entrez phone number: \n");
int telnum = telnumscanner.nextInt();
Run Code Online (Sandbox Code Playgroud)
我在那里输入了一个电话号码样式(0000000000--10个数字)但是当我输入号码时,它会崩溃.
在我的程序中,我需要创建一个字符串数组,允许用户使用扫描仪在控制台中一个接一个地输出最多100个文本字符串.然后我需要程序能够显示当用户键入单词'stop'时键入的所有字符串(<= 100).
我不是指望任何人为我编写整个程序,但可能只是一些提示?
我确信这是非常基本的,但我对java很新,我不能让这个模块失败,任何帮助都非常感谢!
package assignment2017;
import java.util.Scanner;
public class FootballResultsGenerator {
public static void main(String[] args) {
String m = (" : ");
String promptA = ("Goals scored by: ");
String resultA = ("Results: ");
String awayTeamGoals = ("the away teams scored: ");
String homeTeamGoals = ("the home teams scored: ");
String totalGoals = ("Total number of goals: ");
int numberOfGames=0;
String lineSplit = ("-------------------------------------------");
//These are my teams.
//home
String ah = ("Tottenham Hotspur(Home)");
String gh = ("Sunderland(Home)"); …Run Code Online (Sandbox Code Playgroud) 我在条件中有一个带有扫描器的if/else语句,以及检查输入为100或更少的&&语句.它是这样的:
Scanner input = new Scanner(System.in);
if(input.hasNextInt() && avgBefore <= 100) {
avgBefore = input.nextInt();
}
Run Code Online (Sandbox Code Playgroud)
但如果我把一个数字超过100,它仍然接受它.有帮助吗?
如何从扫描仪输入中获取子字符串?
(在您发表评论“重复”或“查找它”之前,我已经知道了。我没有得到适用的答案,也不在我目前在编程课程中可以使用的范围之内。)
我正在尝试使程序使用扫描仪类接受用户输入,然后打印出部分输入,但仅打印尾端。在此示例中,我让扫描仪要求借记卡号,并希望将输入打印回为“ **** **** **** nnnn”(nnnn是来自扫描仪输入的数字)。这是我所拥有的:
import java.util.Scanner;
public class CyberlifePurchase
{
public static void main(String[ ] args)
{
Scanner payment = new Scanner(System.in);
System.out.println("Please enter your debit card number: ");
String cardNumber = in.next();
System.out.println();
String concealedCardNumber = cardNumber.substring(15);
System.out.println("Card Number: " + "**** **** **** " + concealedCardNumber);
Run Code Online (Sandbox Code Playgroud)
当我编译所有内容时,没有编译错误,但是当我运行程序时,这是输入卡号(nnnn nnnn nnnn nnnn格式)后得到的结果:
java.lang.StringIndexOutOfBoundsException: String index out of range: -11
Run Code Online (Sandbox Code Playgroud) java ×10
if-statement ×2
arrays ×1
bluej ×1
integer ×1
loops ×1
string ×1
substring ×1
subtitle ×1
while-loop ×1