JAVA中输入不知道长度的数组
一、整型数组
例如
input:
3// 数组长度n
1 2 3//数组,注意数组是无法直接输出的,要转化为字符串才能输出。
方法一:
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
/*
* 循环连续输入和输出
* 输入:一个数字 3
* 一个数组 1 2 3
*/
Scanner x=new Scanner(System.in);
while(x.hasNext()){
int m=x.nextInt();
//System.out.println(m);
int[] number=new int[m];
for(int i=0;i<m;i++){
number[i]=x.nextInt();
}
// Arrays.sort(number);
System.out.println(Arrays.toString(number));
}
}
}
方法二:
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
/*
* 循环连续输入和输出
* 输入:一个数字 3
* 一个数组 1 2 3
*/
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int a[] = new int[n];
for(int i=0; i<n; i++)
a[i] = sc.nextInt();
String intArrayString = Arrays.toString(a);
System.out.println(intArrayString);
}
}
二、字符串数组转化为整型数组
1、空格+整型。首先输入字符串的数组,中间用空格分隔,然后获取字符串长度,作为int[] 初始数组的长度,再将String字符串数组转化为int数组。
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
String[] nums = null;
nums = sc.nextLine().split(" ");
int num[]=new int[nums.length];
for(int i=0;i<num.length;i++){
num[i]=Integer.valueOf(nums[i]);
}
}
2、逗号+下横线。
public class Demo{
public static void main(String[] args) {
String str = "a,b_a,b_a,b";
String[] temp = str.split("_");
String[][] temp2 =new String[3][2];
for(int i=0;i<temp.length;i++)
{
temp2[i] = temp[i].split(",");
}
for(int i=0;i<temp2[0].length;i++)
{
for(int j=0;j<temp2[1].length;j++)
{
for(int l=0;l<temp2[2].length;l++)
{
System.out.println(temp2[0][i]+"_"+temp2[1][j]+"_"+temp2[2][l]);
}
}
}
}
}