0

如何从 java 项目中的不同类调用方法?我有两个不同的类,每个类都在同一个 java 项目中。第一个类的名称是 Applications,而第二个类的名称是 ShowChar。这些类都在同一个 java 项目中。我必须做的是从用户那里获得一个字符串输入,然后我必须从用户那里获得一个整数,然后我必须告诉用户他们选择的整数上的字母是什么。我做了所有这些。这就是 ShowChar 类所做的,但我应该做的是从 Applications 类的 ShowChar 类中调用一个方法。我无法让它工作。请帮忙。

这是我的 ShowChar 课-

public class ShowChar {


char showChar(String text, int index)
{
    char letter='0';

    if((text.equals(null)))
    {
    System.out.print("Invalid input string. The process"
                          + "terminates");
    }
    else{ 
        if(index<0 || index>=text.length())
        {
            System.out.print("Invalid input for index\n"
                           + "The first character of the text is " + text.charAt(0));
            return letter;
        }
    else{
        if(index>=0 && index<text.length()) 
        {
        System.out.println("The character you asked for is: " + text.charAt(index));
        return letter;
        }
    }
    }

return letter;
}
}`     

这是我通过应用程序类得出的结论-

public static void main(String[] args) {
    Scanner keyboard= new Scanner(System.in);




    String text=JOptionPane.showInputDialog("Enter the text: ");
    System.out.println("Enter the index: ");
    int index= keyboard.nextInt();

    ShowChar sc = new ShowChar();




    System.out.println("character found: " + sc.showChar(text, index) );



}

}

在底部,我应该将我找到的信打印到控制台,但我似乎无法让它工作。每当我使用任何输入运行我的程序时,System.out.println 语句总是返回“找到的字符:0”,我一定是遗漏了一些东西。

4

2 回答 2

2

您没有为字母赋值

char showChar(String text, int index)
{
    char letter='0';

    if((text.equals(null)))
    {
    System.out.print("Invalid input string. The process"
                          + "terminates");
    }
    else{ 
        if(index<0 || index>=text.length())
        {
            System.out.print("Invalid input for index\n"
                           + "The first character of the text is " + text.charAt(0));
            return letter;
        }
    else{
        if(index>=0 && index<text.length()) 
        {
        System.out.println("The character you asked for is: " + text.charAt(index));
        letter = text.charAt(index);
        return letter;
        }
    }
    }

return letter;
}
于 2013-11-05T16:48:54.173 回答
0

您将初始化设置为:

char letter='0';

但是您以后永远不会为 char 赋值,这就是为什么它返回“0”,这是默认值。

建议 :

if(index>=0 && index<text.length()) 
        {
        System.out.println("The character you asked for is: " + text.charAt(index));
        letter = text.charAt(index));
        return letter;
        }
于 2013-11-05T16:49:52.193 回答