andrezc
(usa Debian)
Enviado em 28/09/2011 - 12:49h
Aqui você está criando um método público, estático e que retorna void. Este método recebe uma String como parâmetro. Dentro deste método você chama o método comb1, passando uma string vazia e a variável s como parâmetro.
public static void comb1(String s) { comb1("", s); }
Declaração de um método, como acima, mas passando duas strings como parâmetro.
private static void comb1(String prefix, String s) {
Aqui você verifica se o comprimento do valor da variável "s" é maior que 0, ou seja, se a string possui mais de 0 caracteres.
if (s.length() > 0) {
Aqui você imprime a variável "prefix" e imprime a primeira posição (0) da string "s".
System.out.println(prefix + s.charAt(0));
Aqui você chama o método comb1, passando os devidos parâmetros:
comb1(prefix + s.charAt(0), s.substring(1));
comb1(prefix, s.substring(1));
}
}
Aqui você declara o método principal, que é o método main(). Ele é como a função main da linguagem C.
// read in N from command line, and print all subsets among N elements
public static void main(String[] args) {
Aqui você declara a variável "N", atribuindo um cast para args[0]
int N = Integer.parseInt(args[0]);
Declara duas variáveis string, uma delas sendo atribuída pegando um determinado caractere, como no método charAt().
String alphabet = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
String elements = alphabet.substring(0, N);
O que está abaixo, já foi explicado acima.
// using first implementation
comb1(elements);
System.out.println();
}