问题描述:点击打开链接
/*
思路:将字符串以二维方式存储,再将每一列的长度最大值取出,
按照长度格式输出便可
*/
import java.util.ArrayList;
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
/*
1.创建ArrayList<ArrayList<String>>存储字符串
int[]存储每列长度最大值
*/
Scanner cin = new Scanner(System.in);
ArrayList<ArrayList<String>> list = new ArrayList<>();
int []num = new int[200];
int cnt = 0;
while(cin.hasNext())
{
/*
2.输入字符串后将头尾的空白字符去除,
在用空白字符进行切割
*/
String str = cin.nextLine().trim();
String []arr = str.split(" +");
list.add(new ArrayList<>());
//3.将字符串存储进list中以及每列长度进行比较存储
for(int i=0;i<arr.length;++i)
{
list.get(cnt).add(arr[i]);
if(num[i]<arr[i].length())
num[i]=arr[i].length();
}
cnt++;
}
//4.按照每列长度最大值进行输出
for(int i=0;i<list.size();++i)
{
for(int j=0;j<list.get(i).size()-1;++j)
{
System.out.print(list.get(i).get(j));
for(int k=0;k<=num[j]-list.get(i).get(j).length();++k)
{
System.out.print(" ");
}
}
System.out.println(list.get(i).get(list.get(i).size()-1));
}
}
}