我有这段代码:
import java.util.*;
class Uke44{
public static void main(String[]args){
Scanner input=new Scanner(System.in);
boolean lokke=true;
System.out.println("Vennligst oppgi navn: ");
String navn=input.nextLine();
while(lokke){
for(int i=0; i<100; i++){
System.out.println(navn);
}
System.out.println("Gi et nytt navn? j/n: ");
char valg = input.next().charAt(0);
if(valg.contains("j")){
lokke=true;
System.out.println("Skriv et nytt navn: ");
navn=input.nextLine();
}else{
lokke=false;
}
}
}
}
我想要它做的是,当用户输入:j在提示符时,它应该只是重新执行lokke-variable为true,循环再次运行并且提示用户输入j或n表示是否或不是他/她想继续该计划。但是valg.contains(“j”))不起作用。在我总是需要在自己的变量中保存可能的选择之前,然后使用“==” - 运算符来检查程序是否相等。但是有更简单的方法吗?喜欢,等于还是什么?
答案 0 :(得分:1)
char是原始的数字类型,因此您需要将代码更改为if(valg == 'j')
并且它将起作用
答案 1 :(得分:1)
valg
不是String
,而是char
。 char
不是Object,它是原语,因此它没有功能。
char
也只是一个字符,因此即使提供contains
也没有意义,无论是它还是不是......
尝试使用类似......
的内容if(valg == 'j')){
...代替
答案 2 :(得分:0)
import java.util.*;
class Uke44{
public static void main(String[]args){
Scanner input=new Scanner(System.in);
boolean lokke=true;
System.out.println("Vennligst oppgi navn: ");
String navn=input.nextLine();
while(lokke)
{
for(int i=0; i<2; i++)
System.out.println(navn);
System.out.println("Gi et nytt navn? j/n: ");
char valg = input.next().charAt(0);
System.out.println(valg);
if(valg=='j')
{
lokke=true;
System.out.println("Skriv et nytt navn: ");
Scanner input1=new Scanner(System.in);
navn=input1.nextLine();
}
else
lokke=false;
}
}
}
这是正确的代码。
基本上是改变的部分:
if(valg=='j')
{
lokke=true;
System.out.println("Skriv et nytt navn: ");
Scanner input1=new Scanner(System.in);
navn=input1.nextLine();