尝试使用java.util.Scanner中的nextLine()方法时遇到了麻烦.
这是我尝试过的:
import java.util.Scanner;
class TestRevised {
public void menu() {
Scanner scanner = new Scanner(System.in);
System.out.print("Enter a sentence:\t");
String sentence = scanner.nextLine();
System.out.print("Enter an index:\t");
int index = scanner.nextInt();
System.out.println("\nYour sentence:\t" + sentence);
System.out.println("Your index:\t" + index);
}
}
Run Code Online (Sandbox Code Playgroud)
示例#1:此示例按预期工作.String sentence = scanner.nextLine();在继续之前,该行等待输入输入System.out.print("Enter an index:\t");.
这会产生输出:
Enter a sentence: Hello.
Enter an index: 0
Your sentence: Hello.
Your index: 0
Run Code Online (Sandbox Code Playgroud)
// Example #2
import java.util.Scanner;
class Test {
public void menu() {
Scanner scanner …Run Code Online (Sandbox Code Playgroud) import java.util.*;
class DataTypes {
public static void main(String args[]) {
int i = 4;
double d= 4.0;
String s = "Hackerrank";
Scanner scan = new Scanner(System.in);
int j = scan.nextInt();
double d1 = scan.nextDouble();
String s1 = new String();
s1 = scan.nextLine();
j = j+i;
System.out.println(j);
d1 = d1+d;
System.out.println(d1);
System.out.println(s+" "+s1);
scan.close();
}
}
Run Code Online (Sandbox Code Playgroud)
看到上面的代码它没有错误但是在我输入double后程序没有读取字符串它直接显示输出.但是当我评论int和double的扫描语句时,程序会读取我的字符串.为什么会这样?
我对java还是个新手,所以愚蠢的问题来了。我一直在开发一个简单的软件,使用JFrame、PrintWriter、 File和Scanner创建和读取文本文件,我使用您输入的名称保存该文件,然后将您输入的数据保存到 中JTextField,问题是:一旦您输入一个空格不会将空格后的文本保存到文件中.txt:
输入
等待它
WriteToFile(textarea.getText(), name.getText());
// my function input text name
Run Code Online (Sandbox Code Playgroud)
输出:
等待
但如果我这样手动输入文本:
WriteToFile("waitFor it", name.getText());
// my function input text name
Run Code Online (Sandbox Code Playgroud)
输出:
等待它
这让我认为我的功能可能不会导致这种情况,但我又是一个菜鸟。
主程序.java
package creator;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
import library.Database;
public class Main extends Database{
public static void main(String[] args) {
JFrame frame = new JFrame();
JButton button …Run Code Online (Sandbox Code Playgroud) 我正在实现一个简单的HashMap程序,它存储人名和年龄.这是我的代码:
import java.util.*;
class StoreName {
public static void main(String[] args) {
HashMap<String, Integer> map = new HashMap<String, Integer>();
Scanner sc = new Scanner(System.in);
for (int i = 0; i < 5; i++) {
String name = sc.nextLine();
int age = sc.nextInt();
map.put(name, age);
}
for (String key : map.keySet())
System.out.println(key + "=" + map.get(key));
}
}
Run Code Online (Sandbox Code Playgroud)
当我从nextInt()获取输入时,Scanner会抛出InputMismatchException异常,但如果我从nextLine()获取输入然后将其解析为int,那么我的代码就会正常运行.请解释一下.
如果我可以将字符串输入解析为任何类型,为什么我应该使用nextInt()或nextDouble().
我有这个代码,让用户输入一个字符串,其中2个部分由字符( - )分隔,输入的字符串将被分成两个不同的部分,然后在屏幕上输出这两个部分,用逗号分隔.
public class Test
{
public static void main(String[] args)
{
java.util.Scanner scanner = new java.util.Scanner(System.in);
String part = "";
System.out.println("Please enter the 2-part string to be split: ");
part = scanner.next();
String[] parts = part.split("-");
String part1 = parts[0];
String part2 = parts[1];
System.out.print("," + part1 + "," + part2);
scanner.close();
}
}
Run Code Online (Sandbox Code Playgroud)
现在让我们说用户输入
AAA-222
结果将是
AAA,222
如果我想输入一个包含空格的字符串,如下所示
我爱你我恨你
我如何分裂(我爱你)和(我讨厌你)?我用上面的代码得到了这个错误.
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
at tutorial.Test.main(test.java:17)
Run Code Online (Sandbox Code Playgroud)
PS.拆分部分应包括空格.
我正在努力制作一个基本的8球计划,并让它全部正常工作,但我想尝试改变它,所以如果人们问某些问题有预定义的答案.
package Main;
import java.util.Random;
import java.util.Scanner;
public class eightBall {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Ask a yes or no question");
String question = input.next();
double rnd = Math.random();
int random = (int)(rnd*10);
int numberOfChoices = 5;
if(question.equalsIgnoreCase("Will i win the lottery?")){
System.out.println("The almigty 8 ball can not tell you this answer.");
}else{
switch(random % numberOfChoices){
case 0:
System.out.println("No");
break;
case 1:
System.out.println("Yes");
break;
case 2:
System.out.println("Maybe");
break;
case 3:
System.out.println("Definitely");
break;
case …Run Code Online (Sandbox Code Playgroud)