我试图在一个问题的真实陈述中做出"是"(或在这种情况下为"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)
有谁知道我怎么解决这个问题?我在网上搜索过,我不太确定.
在我的程序的一部分中,我放置了一个 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但我不知道为什么。我该如何解决这个问题?
我一直在解决一些 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])吗?“)”我知道它会跳过某些模式,但括号里是什么?
当我在控制台中键入一个短语时,绿色文本下方只显示一个单词,而其他单词则不出现.不知道我在这里做错了什么.任何帮助,将不胜感激.
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 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) 我想做某种加密,但是如果我输入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) 我想用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) 我想从用户那里获取输入,在这种情况下,他们的全名并使用 .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中使用此语句:
int a = new Scanner(System.in).nextInt();
Run Code Online (Sandbox Code Playgroud)
如果可以的话,有人可以向我解释一下吗?
我的代码基本上将数字排列成相反的顺序,例如 415 程序会将它排列成 514 我的代码是正确的,但我有一个问题,输出应该是垂直的。
Run Code Online (Sandbox Code Playgroud)expected output 5 1 4
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)