java循环,输入字符直到得到指定字符

刚无聊写个小程序,想实现输入指定字符,否则重新输入,但达不到效果,程序如下
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class IoTest {
public static void main(String[] args) {
try {
BufferedReader br = new BufferedReader(new InputStreamReader(
System.in));
System.out.println("请输入姓名:");
String name = br.readLine();
if("daming".equals(name)){
System.out.println("daming,欢迎您进入本系统。");
}else{
System.out.println("十分抱歉,系统不存在您的记录。");
new IoTest();//这个本来是想实现循环的 但达不到效果
}
}catch (Exception e) {
}
}
}
各位看看怎么改

写个死循环就可以了
public static void main(String[] args){

while(true){
try {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("请输入姓名:");
String name = br.readLine();
if("daming".equals(name)){
System.out.println("daming,欢迎您进入本系统。");
break;
}else{
System.out.println("十分抱歉,系统不存在您的记录。");
}

}catch (Exception e) {

}
}
}

}

你那个new loTest()改成这样也行

public class loTest {

public void ss(){

try {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("请输入姓名:");
String name = br.readLine();
if("daming".equals(name)){
System.out.println("daming,欢迎您进入本系统。");

}else{
System.out.println("十分抱歉,系统不存在您的记录。");
new loTest().ss();
}

}catch (Exception e) {

}

}
public static void main(String[] args) {
new DeloTest.ss();

}

}

你还可以这这么干,写在构造函数里面
public class loTest{

public loTest(){
try {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("请输入姓名:");
String name = br.readLine();
if("daming".equals(name)){
System.out.println("daming,欢迎您进入本系统。");

}else{
System.out.println("十分抱歉,系统不存在您的记录。");
new loTest();
}

}catch (Exception e) {

}
}

public static void main(String[] args) {
new Demo2();
}

}
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-07-22
public static void main(String[] args){
    Scanner sc = new Scanner(System.in);
    String name;
    System.out.println("请输入姓名:");
    do{
    name = sc.next();
    if(!"daming".equals(name)){System.out.println("十分抱歉,系统不存在您的记录。");}
    }while(!"daming".equals(name));
    System.out.println("daming,欢迎您进入本系统。");
    }

写法不同作用一样

第2个回答  推荐于2017-09-22
用subString.具体用法:
字符串截取,substring(int beginIndex) 返回一个新的字符串,它是此字符串的一个子字符串。
substring(int beginIndex, int endIndex) 返回一个新字符串,它是此字符串的一个子字符串。
beginIndex - 起始索引(包括)。从0开始
endIndex - 结束索引(不包括)。
"12345".substring(3) returns "45"
"12345".substring(2, 3) returns "23"
第3个回答  2013-07-22
import java.io.BufferedReader;
import java.io.InputStreamReader;

public class IoTest {
    public static void main(String[] args) {
boolean flag = false;
try {
    BufferedReader br = 
        new BufferedReader(new InputStreamReader(System.in));
    while(!flag) {
        System.out.println("请输入姓名:");
        String name = br.readLine();
        if ("daming".equals(name)) {
    System.out.println("daming,欢迎您进入本系统。");
    flag = true;
        } else {
    System.out.println("十分抱歉,系统不存在您的记录。");
        }
    } 
    } catch (Exception e) {
    }
}
}

第4个回答  2013-07-22

楼上正解

public class IoTest {
    public static void main(String[] args) {
        try {
            BufferedReader br = new BufferedReader(new InputStreamReader(
                    System.in));
            System.out.println("请输入姓名:");
            ////---重点是这里,你要加入循环啊,不然他怎么循环判断---///////
            while (!"daming".equals(br.readLine())) {
                System.out.println("十分抱歉,系统不存在您的记录。");
                System.out.println("请输入姓名:");
                
            }
            System.out.println("daming,欢迎您进入本系统。");
        } catch (IOException e) {
            e.printStackTrace();
        }

    }

相似回答