题目描述:从键盘中获得两个数据n和m,然后判读数据m的数据类型,如果是数字,就输出n个m的数;然后判读数据m的数据类型,如果是String,就输出n个m的字符串。
例子:
第一个就是n为6,m为3时,输出333333;第一个就是n为6,m为s时,输出ssssss。
首先,第一步判断从键盘输入的数据类型:sc.hasNextInt()就是判断输入的数据是不是int
sc.hasNext()判断是否有输入的数据;
sc.hasNextInt()判断输入的数据是不是int;
sc.hasNextDouble()判断输入的数据是不是int;
sc.hasNextLong()判断输入的数据是不是long;
sc.hasNextByte()判断输入的数据是不是byte;
sc.hasNextFloat()判断输入的数据是不是Float;
sc.hasNextShort()判断输入的数据是不是short;
sc.hasNextBoolean()判断输入的数据是不是boolean;
sc.hasNextLine()判断输入的数据是不是String;
(有些是我的猜的,你们可以验证验证)
然后,定义一个n为6,m为3时,输出333333
public static void Number(int n,int number){
for(int i=0;i<number;i++){
System.out.print(n);
}
}
这个我重新思考了一下,有了另一个的解决方法,详情可以看我写的这篇博客:
然后,定义一个n为6,m为s时,输出ssssss
public static void NumberSting(String str , int number){
for(int i=0;i<number;i++){
System.out.print(str);
}
}
用static修饰方法是因为在上面的 static void main 有关。
我还在思考更富有推理的方法,目前能想到的方法就只是这个方法,如果你们能想到更好的方法逻辑的话,可以给我一些建议。
现在,我的整个代码逻辑如下:
import java.util.Scanner;
public class Multiplicative {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNext()){
int number = sc.nextInt();//循环的次数
if(sc.hasNextInt()){
int n = sc.nextInt();
Number(n,number);
}else {
String str = sc.next();
NumberSting(str,number);
}
}
}
public static void Number(int n,int number){
for(int i=0;i<number;i++){
System.out.print(n);
}
}
public static void NumberSting(String str , int number){
for(int i=0;i<number;i++){
System.out.print(str);
}
}
}