包含字符串

时间:2016-10-01 09:04:02

标签: java string if-statement

基本上我的任务应该是2个单词,计算我所做的两个中最小的一个,但现在我需要引用最小的单词本身而不是数字。我认为这需要一个If语句,但是当我使用system.out.println命令结束程序时,我无法初始化我的String并且控制台变得挑剔。

Scanner scan = new Scanner(system.In); 
System.out.println(" Input first password ");
String pass1 = scan.nextLine();
Int pass1l = pass1.length();
System.out.println(" input second password "); 
String pass2 = scan.nextLine();
Int pass2l = pass2.length();
Int spassl = Math.min(pass1l,pass2l);
// problematic part here. 
String spass;
If (pass1l > pass2l){ spass = pass2}
else if (pass1l < pass2l) {spass = pass1}
else if (pass1l == pass2l) {spass = null;};

此外,Else if语句不是语句,第一语句是表达式的非法开始。

然后,如果我修复那些我用system.out调用spass,它说它没有初始化。我刚刚开始学习基本的Java,我之前使用过处理但不是针对String相关的if语句,只有整数。

2 个答案:

答案 0 :(得分:1)

你快到了。如果没有最终else的块,则需要初始化变量spass。您可以给spass =“”或更改最终其他如果否则如下所示。

    Scanner scan = new Scanner(System.in);
    System.out.println(" Input first password ");
    String pass1 = scan.nextLine();
    System.out.println(" input second password ");
    String pass2 = scan.nextLine();
    // problematic part here.
    String spass;
    if (pass1.length() > pass2.length()) {
        spass = pass2;
    } else if (pass1.length() < pass2.length()) {
        spass = pass1;
    } else {
        spass = null;
    }
    System.out.println("result: " + spass);

答案 1 :(得分:0)

你的问题只是一个格式问题,如果语句是这样的形式:

if(condition){
    do_something;
}else if( second_condition ){
    do_something_else;
}else{
    alternative;
}

在你的情况下,似乎你不知道在哪里设置分号;

你必须在if块中设置分号,如下所示:

String spass;
If (pass1l > pass2l){ 
    //Here semicolon
    spass = pass2;
} else if (pass1l < pass2l) {
    //Here semicolon
    spass = pass1;
}else if (pass1l == pass2l) {
    //Here semicolon
    spass = null;
}
//No semicolon at the end of the if-else-statement