实例和类语法

时间:2017-03-02 19:11:04

标签: java compiler-errors

所以...我理解一个主要方法的想法,然后能够调用多个类。我们可以直接引用一个来运行不同的场景。如果需要,AKA使用它。静态是一个实例,而主要是总体 问题: 我放置酒吧的地方有回报;这用来让我离开这个实例。但是,它告诉我我需要一个字符串。哪个有意义,因为方法和输出必须匹配? 我试过了: 1.仅返回int值 2.使用-String.valueOf(special)将int转换为字符串; 错误在哪里?

import java.util.Scanner;
public class Overall{
  public static void main(String[] argc){
    Scanner input = new Scanner(System.in);
    int i = 0;
  int containsLowerCase = 0;
  System.out.println(" Please give me a string that has a combination of lower, upper, digits and special characters"); 
    String s1 = input.next();
    System.out.println(s1);
  }
  public static String isSpecial (String input){
   int special = 0;
    int i =0;
    for(i=0;i< input.length(); i++){
      char c = input.charAt(i); 
      if (c=='#' || c=='$' || c== '*' || c== '&')
        special++;
       String.valueOf(special);
    }
    return special;


_________________________________________________________
  ^ ONLY FOCUSING ON UPPER HALF ISSUES ^

  public static String print (String input){
    System.out.println(s1);
  }    
public static  int isDigit (int input){
  int digit = 0;
  for(i=0;i< input.length(); i++){
    char c = imput.charAt(i); 
    if (character.isDigit(s1.charAt(i))){
      isDigit++;
    }
    return isDigit++;
  }
}
public static int isLower (int input){
  int digit = 0;
  for(i=0;i< input.length(); i++){
    char c = imput.carAt(i); 
    if (character.isLowerCase(s1.charAt(i))){

      isLower++;
    }
  }
}
public static int isUpper (int input){
  int digit = 0;
  for(i=0;i< input.length(); i++){
    char c = imput.carAt(i); 
    if (character.isUpperCase(s1.charAt(i))){

      isUpper++;
    }
  }
}






}

3 个答案:

答案 0 :(得分:2)

你返回特殊的int,你需要定义一个新的String变量并返回它或只是return String.valueOf(special);

您调用了String.valueOf(int),它将int转换为String,但您需要将该方法的返回值放在String变量中。

示例:String newStringVariable = String.valueOf(special);

答案 1 :(得分:1)

返回String.valueOf(数字)

public static String isSpecial (String input){
   int special = 0;
    int i =0;
    for(i=0;i< input.length(); i++){
      char c = input.charAt(i); 
      if (c=='#' || c=='$' || c== '*' || c== '&')
        special++;
    }
    return String.valueOf(special);

答案 2 :(得分:0)

我会尽力提及你所有的错误,然后告诉你为什么这是错的,以及它是什么样的错误。

首先,让我们从您的isSpecial方法开始:
您计算特殊字符在String中的次数。它的大多数代码是正确的,但我认为你想要返回类型的int而不是String。请参阅,在方法名称之前编写的类型,在本例中为String,是该方法将返回的Object类型。在您的方法中,您可以计算某个事件发生的次数,因此您希望返回数字,以便稍后使用该值或其他内容进行计算。

return语句必须位于方法体中,当到达时,当前方法获取该值并将其返回给它的调用。之后该方法退出,因此在返回之后,此方法结束,程序继续,您调用该方法。请参考以下代码:

public class Test {
    public static void main (String [] args){
        String testText = "This was written on 2.03.2017";
        int numbers = countNumeric (testText);
        System.out.println ("The text containes "+ numbers +" numbers");
    }

    public static int countNumeric (String text){
        int count = 0;
        for (int i = 0; i < text.length; i++){
            if (Character.isDigit (text.charAt (i))
                count++;
        }
        return count;
    }

执行此方法时,java会创建一个新的String,然后将该String传递给countNumeric方法,其中count对于String中的每个数字字符加1。然后countNumeric返回计数。程序跳回到main方法,并获取countNumeric的返回值并将其放入变量数字,然后打印出来。

使用String.valueOf时似乎也遇到了问题。 String.valueOf是一个方法,它接受一个数字并将其转换为字符串。但是因为你声明了特殊的int,你不能在其中存储一个String(并且可能希望稍后使用它)。因此,要将数字转换为String,您必须创建一个String类型的新变量,如下例所示:

int number = 123;
String text = String.valueOf (number);
//do something with text

因此,大多数错误都是由于缺少退货或错误的退货类型造成的。你的isDigit方法中的reurn也在for循环中,因此它只会查看String的第一个字符。

我希望我可以帮助你,并建议你一步一步地寻找一个好的java教程,因为你似乎对编程并不熟悉。