Организация строки на основе максимальной длины каждого поля - PullRequest
0 голосов
/ 22 декабря 2010

Я сделал программу, которая облегчает мою жизнь, читая класс и создавая методы, подобные приведенным ниже:

//Ferramentas Parâmetros 
acessos.add(new AcessoBean("Ferramentas", "Parâmetros", "Parâmetros", "Pesquisa", "ppaParametrosList", null, TipoAcessoBean.TELA));
acessos.add(new AcessoBean("Ferramentas", "Parâmetros", "Parâmetros", "Gravar", "ppaParametrosHome", "persist", TipoAcessoBean.ACAO));
acessos.add(new AcessoBean("Ferramentas", "Parâmetros", "Parâmetros", "Atualizar Dados", "ppaParametrosHome", "update", TipoAcessoBean.ACAO));
acessos.add(new AcessoBean("Ferramentas", "Parâmetros", "Parâmetros", "Leitura", "ppaParametrosHome", "find", TipoAcessoBean.ACAO));
acessos.add(new AcessoBean("Ferramentas", "Parâmetros", "Parâmetros", "Excluir", "ppaParametrosHome", "remove", TipoAcessoBean.ACAO));

Не беспокойтесь о языке.Мне не будет сложнее понять, что мне нужно сделать.Я хочу организовать это так:

//Ferramentas Parâmetros 
acessos.add(new AcessoBean("Ferramentas", "Parâmetros", "Parâmetros", "Pesquisa"       , "ppaParametrosList", null     , TipoAcessoBean.TELA));
acessos.add(new AcessoBean("Ferramentas", "Parâmetros", "Parâmetros", "Gravar"         , "ppaParametrosHome", "persist", TipoAcessoBean.ACAO));
acessos.add(new AcessoBean("Ferramentas", "Parâmetros", "Parâmetros", "Atualizar Dados", "ppaParametrosHome", "update" , TipoAcessoBean.ACAO));
acessos.add(new AcessoBean("Ferramentas", "Parâmetros", "Parâmetros", "Leitura"        , "ppaParametrosHome", "find"   , TipoAcessoBean.ACAO));
acessos.add(new AcessoBean("Ferramentas", "Parâmetros", "Parâmetros", "Excluir"        , "ppaParametrosHome", "remove" , TipoAcessoBean.ACAO));

Я читаю весь класс с помощью Scanner, но как только я читаю, я сохраняю только те вещи, которые хочу, в Коллекцию, содержащую эти вещи выше.Как я могу сделать метод для заполнения пустым, чтобы он был организован?

Ответы [ 2 ]

1 голос
/ 22 декабря 2010

Вроде так:

import java.util.ArrayList;
import java.util.List;

public class Tabularize {

    static String input =
        "acessos.add(new AcessoBean(\"Ferramentas\", \"Parâmetros\", \"Parâmetros\", \"Pesquisa\", \"ppaParametrosList\", null, TipoAcessoBean.TELA));\n" + 
        "acessos.add(new AcessoBean(\"Ferramentas\", \"Parâmetros\", \"Parâmetros\", \"Gravar\", \"ppaParametrosHome\", \"persist\", TipoAcessoBean.ACAO));\n" + 
        "acessos.add(new AcessoBean(\"Ferramentas\", \"Parâmetros\", \"Parâmetros\", \"Atualizar Dados\", \"ppaParametrosHome\", \"update\", TipoAcessoBean.ACAO));\n" + 
        "acessos.add(new AcessoBean(\"Ferramentas\", \"Parâmetros\", \"Parâmetros\", \"Leitura\", \"ppaParametrosHome\", \"find\", TipoAcessoBean.ACAO));\n" + 
        "acessos.add(new AcessoBean(\"Ferramentas\", \"Parâmetros\", \"Parâmetros\", \"Excluir\", \"ppaParametrosHome\", \"remove\", TipoAcessoBean.ACAO));";

    public static void main( String[] args ) {

        int[] maxWidth = new int[1024];

        String[] lines = input.split( "\n" );
        List<String[]> output = new ArrayList<String[]>();
        for( String line : lines ) {
            String[] columns = line.split( "\\s*,\\s*" );
            output.add( columns );

            int i = 0;
            for( String column : columns ) {
                maxWidth[i] = Math.max( maxWidth[i], column.length() );
                i ++;
            }
        }

        for( String[] columns : output ) {
            int i = 0;
            String delim = "";
            for( String column : columns ) {
                System.out.print( delim );
                delim = ", ";

                String format = String.format("%%-%ds", maxWidth[i]);
                System.out.printf( format, column );

                i ++;
            }

            System.out.println();
        }
    }
}
0 голосов
/ 22 декабря 2010
  1. Разделите значения запятыми.
  2. Найти самую длинную строку во всех строках за каждый столбец.
  3. Восстановить текст, добавив пробел после каждое значение, так что общая длина равна наибольшему значению в колонка.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...