标签: java.util.scanner

布尔,if-else语句和扫描仪?

我试图在一个问题的真实陈述中做出"是"(或在这种情况下为"y").对以下问题的任何其他回应都被称为虚假陈述.

System.out.print("Do you smoke?(y/n): ");
        boolean smoker = console.nextBoolean();
        if (smoker.equalsIgnoreCase("y")) {
            smoker = true;
        } else {
            smoker = false;
        }
Run Code Online (Sandbox Code Playgroud)

我收到了错误

HealthPlan.java:32: error: boolean cannot be dereferenced
        if (smoker.equalsIgnoreCase("y")) {
              ^
Run Code Online (Sandbox Code Playgroud)

有谁知道我怎么解决这个问题?我在网上搜索过,我不太确定.

java if-statement boolean object java.util.scanner

-1
推荐指数
1
解决办法
258
查看次数

!string.equals(string) 结果为 false

在我的程序的一部分中,我放置了一个 while 循环来重复请求输入。有一个选项可以输入字母“F”并中断循环。这是我的程序:

public class Example {
    public static void main(String[] args) {
        int x = 0;
        ArrayList Numbers = new ArrayList();
        while (x==0) {
            System.out.println("Type your number:");
            Scanner s = new Scanner(System.in);
            if (s.equals("f") || s.equals("F")) {
                x = 1;
            }
            else if (!s.equals("f") && !s.equals("F")) {
                int n = Integer.parseInt(s.next());
                Numbers.add(n);
            }
        }   
    }
}
Run Code Online (Sandbox Code Playgroud)

当我运行该程序时,我输入一些数字,然后输入“F”。我看到这个错误:

Exception in thread "main" java.lang.NumberFormatException: For input string: "F"
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:68)
at java.base/java.lang.Integer.parseInt(Integer.java:652)
at java.base/java.lang.Integer.parseInt(Integer.java:770)
at Example.main(Example.java:13)
Run Code Online (Sandbox Code Playgroud)

我相信字符串“F”可以通过我的else if但我不知道为什么。我该如何解决这个问题?

java string if-statement java.util.scanner

-1
推荐指数
1
解决办法
105
查看次数

Scanner.skip("(\r\n|[\n\r\u2028\u2029\u0085])?") 是什么意思?

我一直在解决一些 hackerrank 基本 JAVA 问题,其中一个问题陈述有以下代码:

import java.io.*;
import java.math.*;
import java.security.*;
import java.text.*;
import java.util.*;
import java.util.concurrent.*;
import java.util.regex.*;

public class Solution {



    private static final Scanner scanner = new Scanner(System.in);

    public static void main(String[] args) {
        int N = scanner.nextInt();
        scanner.skip("(\r\n|[\n\r\u2028\u2029\u0085])?");
        scanner.close();
        if(N%2!=0){
            System.out.println("Weird");
        }
        else if(N%2==0 && N<=5 && N>=2){
             System.out.println("Not Weird");

        }
        else if(N%2==0 && N<=20 && N>=6){
             System.out.println("Weird");
    }
    else if(N%2==0 && N>20){
             System.out.println("Not Weird");
}}}
Run Code Online (Sandbox Code Playgroud)

你能解释一下“scanner.skip(”(\r\n|[\n\r\u2028\u2029\u0085])吗?“)”我知道它会跳过某些模式,但括号里是什么?

java java.util.scanner

-1
推荐指数
1
解决办法
4787
查看次数

println中只显示一个单词,其余单词则不显示

当我在控制台中键入一个短语时,绿色文本下方只显示一个单词,而其他单词则不出现.不知道我在这里做错了什么.任何帮助,将不胜感激.

Scanner keyboard = new Scanner(System.in);

System.out.println("Enter a sentence or phrase. It can be anything you want it to be: ");

//ask user for sentence or phrase
String p1 = keyboard.next(); 

System.out.println(c1); //display user sentence or phrase
Run Code Online (Sandbox Code Playgroud)

java java.util.scanner

-2
推荐指数
1
解决办法
85
查看次数

Java扫描仪阅读垃圾

我正在使用java Scanner阅读文本文件.

try {
            while(sc.hasNextLine()) {
                //Read input from file
                inputLine = sc.nextLine().toUpperCase();
                System.out.println(inputLine);
}
Run Code Online (Sandbox Code Playgroud)

上面给出了下面的输出,而我的文本文件只包含"aabbcc".如何避免扫描仪扫描垃圾?谢谢.

{\RTF1\ANSI\ANSICPG1252\COCOARTF1265\COCOASUBRTF210
{\FONTTBL\F0\FSWISS\FCHARSET0 HELVETICA;}
{\COLORTBL;\RED255\GREEN255\BLUE255;}
\PAPERW11900\PAPERH16840\MARGL1440\MARGR1440\VIEWW10800\VIEWH8400\VIEWKIND0
\PARD\TX566\TX1133\TX1700\TX2267\TX2834\TX3401\TX3968\TX4535\TX5102\TX5669\TX6236\TX6803\PARDIRNATURAL

\F0\FS24 \CF0 AABBCC}
Run Code Online (Sandbox Code Playgroud)

java java.util.scanner

-2
推荐指数
1
解决办法
1109
查看次数

.replace方法不是java中的workkng

我想做某种加密,但是如果我输入a,它就不会改为I,它只会打印一个.为什么是这样?

import java.util.Scanner;
public class Encryption 
{
    public static void main(String[] args)
    {
        String normal = "", encoded, userResponse = "";

        Scanner sc = new Scanner(System.in);

        System.out.println("Are you encoding or decoding? E or D");
        userResponse = sc.next();

        if (userResponse.equalsIgnoreCase("e"))
        {
            System.out.println("Enter the text that you want to encode:");
            normal = sc.next();

            encoded = normal.replace('a', 'i');
            encoded = normal.replace('b', 's');
            encoded = normal.replace('g', 'e');
            encoded = normal.replace('k', 'f');
            encoded = normal.replace('p', 'h');
            encoded = normal.replace('c', 'z');
            encoded = normal.replace('m', 'r');
            encoded …
Run Code Online (Sandbox Code Playgroud)

java java.util.scanner

-2
推荐指数
1
解决办法
54
查看次数

如何用Java中的HH:MM:SS格式读取时间?

我想用HH:MM:SS格式读取时间.我试过这个,但结果是java.util.InputMismatchException

Scanner sc = new Scanner(System.in);
int h = sc.nextInt();
sc.next();
int m = sc.nextInt();
sc.next();
int s = sc.nextInt();
System.out.println(h+":"+m+":"+s);
Run Code Online (Sandbox Code Playgroud)

java time java.util.scanner

-2
推荐指数
1
解决办法
3752
查看次数

获取用户的输入字符串并在 Java 中将其拆分

我想从用户那里获取输入,在这种情况下,他们的全名并使用 .split(" ") 命令将其拆分为 2 或 3 个部分,具体取决于名称的数量,然后在不同的行上打印出结果:

例如,

用户输入:

“约翰·史密斯”

程序返回:

约翰

美国能源部

史密斯

目前,我的代码如下所示:

import java.util.Scanner;
public class Task2 {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        String name;
        System.out.println("Enter your full name: ");
        name = input.next();
        String[] parts = name.split(" ");
        System.out.println(java.util.Arrays.toString(parts));

    }
}
Run Code Online (Sandbox Code Playgroud)

这目前只返回名称的第一部分。

该程序还应该能够处理没有中间名的人。

java string split java.util.scanner

-2
推荐指数
1
解决办法
3194
查看次数

我们可以在java中使用Scanner(System.in).nextInt()吗?

可以在Java中使用此语句:

int  a = new Scanner(System.in).nextInt();
Run Code Online (Sandbox Code Playgroud)

如果可以的话,有人可以向我解释一下吗?

java java.util.scanner

-2
推荐指数
1
解决办法
567
查看次数

Java循环垂直

我的代码基本上将数字排列成相反的顺序,例如 415 程序会将它排列成 514 我的代码是正确的,但我有一个问题,输出应该是垂直的。

expected output
5
1
4
Run Code Online (Sandbox Code Playgroud)
import java.util.Scanner;
public class Main{
  public static void main(String args[])
  {
    Scanner in = new Scanner(System.in);
    int num = in.nextInt();
    int rev=0;
    while( num != 0 )
      {
          rev = rev * 10;
          rev = rev + num%10;
          num = num/10;
      }
          System.out.println(rev);
  }
}
Run Code Online (Sandbox Code Playgroud)

java integer loops do-while java.util.scanner

-2
推荐指数
1
解决办法
76
查看次数