如何创建返回字符串长度的用户定义方法?

时间:2016-09-13 01:42:43

标签: java string methods user-defined

我正在尝试编写一个程序,它接受用户的输入并输出他们输入的字符数。我必须通过创建一个计算字符数量的方法,然后在main中调用该方法来输出结果。我被鼓励使用for循环,但我不知道它会如何工作。我可以使用length()计算字符数,但我无法弄清楚如何使我的方法工作。这就是我到目前为止所做的:

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

 String userInput = "";

 System.out.println("Enter a sentence: ");
 System.out.print("You entered: ");

 userInput = scnr.nextLine();
 System.out.println(userInput);


  return;
 }

 public static int GetNumOfCharacters(int userCount) {

  int i = 0;
  String userInput = "";
  userCount = userInput.length();


return userCount;
 }
}

我的方法不是返回字符串的长度,只是给我0或错误。

5 个答案:

答案 0 :(得分:1)

现在,您永远不会在主体中调用“GetNumOfCharacters”方法。 Java程序的工作方式是通过调用main方法并执行每行的行。所以你需要从里面的主方法中调用你的方法。另一方面,它应该将Stirng作为参数,这样你就可以得到它的长度。它看起来像这样:

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

    String userInput = "";

    System.out.println("Enter a sentence: ");


    userInput = scnr.nextLine();
    System.out.print("You entered: ");
    System.out.println(userInput);

    int lenInput = GetNumOfCharacters(userInput);

    System.out.println("The length was: "+lenInput+" characters");
}

public static int GetNumOfCharacters(String userInput) {
    int len = userInput.length();
    return len;
}

答案 1 :(得分:0)

代码问题:

  • 无函数调用

    main()中添加函数调用int count=GetNumOfCharacters(userInput);

  • 参数数据类型不匹配

    将函数定义中的数据类型从int更改为String public static int GetNumOfCharacters(String userInput) {

  • main()

    中不需要的退货声明

    return

  • 中删除main()
  • 不显示从GetNumOfCharacters

    返回的值

    System.out.print("Number of characters: "+ count);

  • 中添加main()

<强>代码:

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

   String userInput = "";

   System.out.println("Enter a sentence: ");
   System.out.print("You entered: ");

   userInput = scnr.nextLine();
   System.out.println(userInput);

   int count=GetNumOfCharacters(userInput);
   System.out.print("Number of characters: "+ count);
   }

   public static int GetNumOfCharacters(String userInput) {
   int userCount = userInput.length();
   return userCount;
   }

实际上不需要功能,您可以删除该功能,并按照以下方式执行:

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

 String userInput = "";

 System.out.println("Enter a sentence: ");
 System.out.print("You entered: ");

 userInput = scnr.nextLine();
 System.out.println(userInput);

 System.out.print("Number of characters: "+ userInput.length());
 }

答案 2 :(得分:0)

问题是你实际上没有调用方法

所以试试

public static void main(String[] args) {

 Scanner scnr = new Scanner(System.in);

 System.out.println("Enter a sentence: ");
 String userInput = scnr.nextLine();
 System.out.print("You entered: ");
 System.out.println(userInput);

 System.out.println ("The length is " + GetNumOfCharacters (userInput))    


 }

 // need to pass string into this method
 public static int GetNumOfCharacters(String myString) {

  int userCount = myString.length();
  return userCount;
 }
}

答案 3 :(得分:0)

您的问题包括:

  

我被鼓励使用for循环,但我不知道会怎么样   工作

在Java中没有优雅的方法,因为假设您使用String.length()来获取字符串的长度。没有“字符串结束”标记,例如C语言。但是,当您访问字符串末尾时,通过捕获抛出的异常,您可以模仿相同的效果:

for (int len = 0; ; len++) {
    try {
        text.charAt(len);
    } catch (StringIndexOutOfBoundsException ex) {
        return len;
    }
}

这不是一个好的,有效的或有用的代码片段,但它确实演示了如何使用for循环获取字符串的长度。

答案 4 :(得分:0)

如果您不想使用预定义方法,可以这样做..

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


 System.out.println("Enter a sentence: ");
 String userInput = scnr.nextLine();

 System.out.println("You entered: "+userInput);

char a[]=userInput.toCharArray();
 int count=0;
for(char c : a){
  count++;
}
System.out.println("length of the string is:"+count);

}