首页 > 解决方案 > 有没有办法使用 .hasNext 以外的其他方法编写这个程序?

问题描述

编写一个程序,要求用户输入一个字符串。然后要求用户输入一个索引值(整数)。您将使用字符串类中的 charAt() 方法来查找并输出该索引所引用的字符。允许用户重复这些操作,方法是把它放在一个循环中,直到用户给你一个空字符串。现在意识到,如果我们使用错误值(负值或大于字符串大小的整数)调用 charAt 方法,则会引发异常。添加代码以捕获此异常,输出警告消息,然后继续循环

import java.util.Scanner;

class Main
{
    public static void main(String[] args)
    {
        System.out.println("");
        String s;
        int ind;
        Scanner sc=new Scanner(System.in);
        while(sc.hasNext())
        {
            s=sc.next();
            if(s.length()==0)
                break;
            ind=sc.nextInt();
            try {
                char ch=s.charAt(ind);
                System.out.println("Character is "+ch);
            }
            catch(Exception e) {
                System.out.println("Bad index Error!");
            }
        }
    }
}

标签: javabreak

解决方案


是的。您可以依靠分配评估分配的值。另外,打电话Scanner.hasNextInt()前打电话Scanner.nextInt()。喜欢,

System.out.println();
String s;
Scanner sc = new Scanner(System.in);
while (sc.hasNext() && !(s = sc.next()).isEmpty()) {
    if (sc.hasNextInt()) {
        int ind = sc.nextInt();
        try {
            char ch = s.charAt(ind);
            System.out.println("Character is " + ch);
        } catch (Exception e) {
            System.out.println("Bad index Error!");
        }
    }
}

推荐阅读