写程序时经常遇到整数输入格式的问题
例如:“第一行是一个整数n(1≤n≤26),表示矩阵数目。接着有n行,每行的开头是一个大写字母,是矩阵的名称,然后是两个整数,表示该矩阵的行数与列数。”类似如此。
-
遇到这样的问题,可以先定义一个String字符串,将输入的东西放入定义好的字符串里
String str=scanner.nextLine();
-
然后将String字符串转换为字符串数组,并调用split方法除掉整数以外的元素
String[] temp= str.split(" ");
-
定义一个整型数组
int[] number=new int[temp.length];
-
使用循环将字符串数组里的每一个元素利用类型转换放入整型数组里
for(int i=0;i<number.length;i++)
{
number[i]=Integer.parseInt(temp[i]);
}
这样不仅可以实现整数的任意输入格式,只要替换3、4步骤的数组类型同样可以实现其他类型数组的不同输入格式。
测试结果如下:
若要实现开头举的例子则还需定义一个数据类,完整代码如下:
import java.util.Scanner;
public class MatrixMultiply {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
String NumberS=scanner.nextLine();
int Number=Integer.parseInt(NumberS);
data[] dateTemp=new data[Number];
for(int i=0;i<Number;i++){
dateTemp[i]=new data();
String temp=scanner.nextLine();
String[] tempArr= temp.split(" ");
dateTemp[i].setName(tempArr[0]);
dateTemp[i].setRows(Integer.parseInt(tempArr[1]));
dateTemp[i].setColumn(Integer.parseInt(tempArr[2]));
}
//输出测试
for(int i=0;i<Number;i++){
System.out.println(dateTemp[i]);
}
}
class data{
private String Name;
private int Rows;
private int Column;
public String getName() {
return Name;
}
public void setName(String name) {
Name = name;
}
public int getRows() {
return Rows;
}
public void setRows(int rows) {
Rows = rows;
}
public int getColumn() {
return Column;
}
public void setColumn(int column) {
Column = column;
}
public String toString(){
return this.getName()+" "+this.getRows()+" "+this.getColumn();
}
}
测试结果如下: