Pencile - exer

import java.util.HashMap;
import java.util.Map;

public class TableConverter {

    public static void main(String[] args) {
        // 示例输入数据
        String[] inputData = {
                "line1 col1 A",
                "line2 col3 B",
                "line3 col1 C",
                "line4 col2 D",
        };

        // 转换为文本型表格并输出
        String tableOutput = convertToTable(inputData);
        System.out.println(tableOutput);
    }

    public static String convertToTable(String[] inputData) {
        // 寻找表格的行列最大值
        int maxRow = 0;
        int maxCol = 0;
        Map<String, String> cellData = new HashMap<>();

        for (String data : inputData) {
            String[] parts = data.split("\\s+");
            int row = Integer.parseInt(parts[0].substring(4));
            int col = Integer.parseInt(parts[1].substring(3));
            maxRow = Math.max(maxRow, row);
            maxCol = Math.max(maxCol, col);
            cellData.put(row + "-" + col, parts[2]);
        }

        // 构建文本型表格
        StringBuilder table = new StringBuilder();

        for (int row = 1; row <= maxRow; row++) {
            for (int col = 1; col <= maxCol; col++) {
                String content = cellData.getOrDefault(row + "-" + col, "");
                String cell = (content.isEmpty()) ? "   " : " " + content + " ";
                table.append("|").append(cell);
            }
            table.append("|\n");
            if (row < maxRow) {
                for (int col = 1; col <= maxCol; col++) {
                    table.append("+---");
                }
                table.append("+\n");
            }
        }

        return table.toString();
    }
}

你可能感兴趣的:(java,算法)