题目:目录列表

该博客探讨了如何改进命令行中的目录列表程序,以在给定的显示宽度限制下,用最少的行数格式化输出所有文件名。文章强调了在保持字典序左对齐的同时,使前面的行尽可能填满列的重要性。输入包括文件数量和一行显示的最大宽度,输出则要求按照特定格式排列。示例展示了不同输入和对应的优化输出效果。
摘要由CSDN通过智能技术生成

题面描述:
命令行中有一个列目录的程序,可以按照指定的方式将目录中的文件罗列出来。小A想进一步改进列表程序,希望在给定的显示宽度限制下用最少的行格式化输出所有的文件名,且排在前面的行尽可能满列。显示规则为:文件列表按字典序左对齐的方式显示为若干列,列宽由文件名的最大长度确定,列间用2个空格分割,最后一列无需空格。

输入:
输入数据有若干组,每组为待罗列的文件名列表,格式如下: 每组的第一行为空格分隔的两个整数n,w(0<n≤w),分别为该组文件的数量和一行能够显示的宽度。随后的n行中,每行为一个文件名,保证每个文件名最长不超过指定的显示宽度。

输出:
对每组输入,先根据要求的宽度输出对应个"-",随后按要求输出若干列格式化的文件名列表,所有列表中文件名自上而下、从左到右按字典序排列。

示例输入:
20 60
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
10 10
a
b
c
d
e
f
g
h
i
j

示例输出:
在这里插入图片描述

import java.util.Scanner;  
import java.util.Arrays;  
public class Main {
     
    public static void main(String[] args){
     
        Scanner scan = new Scanner(System.in);  
        while(scan.hasNext()){
     
            double n = scan.nextInt();  
            int w = scan.nextInt();  
            scan.nextLine();  
            String[] s = new String[(int)n];  
            s[0] = scan.nextLine();  
            int maxlen = s[0].length();  
            for(int i=1;i<n;i++){
     
                s[i] = scan.nextLine();  
                if
  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值