调用方法有困难

时间:2013-05-19 11:57:12

标签: java methods method-call

我有一种感觉,答案就在我的鼻子底下,但是我对Java的n00b-ness让我追逐着我的尾巴。第一部分,我想要让用户输入两个字符串,比较它们,并说明第一个字符串中的字符数。第二部分,我想要让用户输入一个位置,记住第一个字符从零开始,然后代码假设说明该位置的字符。

我认为我的第一部分的代码非常干净,但我需要帮助的是第二部分。我已经在底部写了这个方法,但现在我不知道如何调用它。我一直在编译器中收到错误消息。由于这个错误,我也没有机会真正测试该方法,所以如果你看到任何错误,任何帮助将非常感激。提前谢谢!

import java.util.Scanner;

public class StringCode1
{
   public static void main(String[] args)
   {
    String string1, string2;
    int pos;

        Scanner stdin = new Scanner(System.in);

        System.out.print("Enter first string: ");
        string1 = stdin.next();
        System.out.print("Enter second string: ");
        string2 = stdin.next();

        if (string1.compareTo(string2) > 0)
    {
       System.out.println(string1 + " is less than " + string2);
    }
        else if (string1.compareTo(string2) == 0)
    {
       System.out.println(string1 + " is equal to " + string2);
    }
        else if (string1.compareTo(string2) < 0)
    {
       System.out.println(string1 + " is greater than " + string2);
    }
    System.out.print("Number of characters in " + string1 + " is " );       

    System.out.println(string1.length() );

    String = showChar();
   }

   public static char showChar(String string1, int pos)
   {
    Scanner stdin = new Scanner(System.in);

    System.out.println("Enter position noting first character is at 0: ");
    string1 = stdin.nextLine();
    pos = stdin.nextInt();

    System.out.print("Character at position" + pos + "in " + string1); 
    System.out.print("is: "); 
    System.out.println(string1.charAt(pos));

   }  
  }

2 个答案:

答案 0 :(得分:1)

String = showChar();

在上面一行中,您试图分配一个类型,这是一个无效的表达式。此外,您的方法showChar需要两个参数,并且您尝试使用无参数调用它。

另一个错误是showChar的返回类型为char但没有return语句。要么使它成为void方法,要么将其return(大概是string1.charAt(pos))。

因此,您必须找到showChar的参数应该是什么,然后,如果showChar的值应该返回char,则将其分配给变量它的类型,如:

char c = showChar(string1, yourIndex);

或者,如果它是void

showChar(string1, yourIndex);

...其中yourIndex是您要为pos中的showCar参数传递的值。

答案 1 :(得分:0)

修改showChar函数,如下所示:

public static void showChar()
{
    Scanner stdin = new Scanner(System.in);

    System.out.println("Enter position noting first character is at 0: ");
    String string1 = stdin.nextLine();
    int pos = stdin.nextInt();

    System.out.print("Character at position" + pos + "in " + string1); 
    System.out.print("is: "); 
    System.out.println(string1.charAt(pos));

}  

并使用showChar();

进行调用