所以...我理解一个主要方法的想法,然后能够调用多个类。我们可以直接引用一个来运行不同的场景。如果需要,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++;
}
}
}
}
答案 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教程,因为你似乎对编程并不熟悉。