[color=darkblue]System.out.println (String.format(""+ a +"")); [/color][color=black]Se inserir esta linha desta forma o programa corre normalmente, no entanto se a inserir forma seguinte [/color] [color=darkblue]System.out.println (String.format("%01X",""+ a +""));[/color] o programa dá-me este erro
Exception in thread “main” java.util.IllegalFormatConversionException: x != java.lang.String
at java.util.Formatter$FormatSpecifier.failConversion(Formatter.java:4011)
at java.util.Formatter$FormatSpecifier.printInteger(Formatter.java:2725)
at java.util.Formatter$FormatSpecifier.print(Formatter.java:2677)
at java.util.Formatter.format(Formatter.java:2449)
at java.util.Formatter.format(Formatter.java:2383)
at java.lang.String.format(String.java:2781)
at contadora.main(contadora.java:14)
Deduzo que me falte, qualquer coisa o quê? Obrigado!
acho que o erro ocorre porque o segundo parâmetro que foi passado esta errado, a linha deveria ser:
System.out.println (String.format(""+"%"+""+"01X",a));
faz toda a formatação na primeira parte e após a vírgula, passar só a variável entende.
e no caso que se usar mais variáveis, mesma coisa, toda a formatação no primeiro parâmetro, e depois as variáveis.
System.out.println (String.format("%d"+""+"%d"+"%d"+""+"%d",a,b,c,d));
Seguindo o 1º exemplo dá 5 erros. Na minha ignorância julgo que o problema tem a ver com a matriz, porque tenho outro projecto identico sem matriz e ele corre normalmente com esta formatação
[color=green]System.out.println(String.format("%08X",x));[/color]
import java.util.;
import java.util.regex.;
import java.text.;
import java.lang.reflect.;
public class contadora
{
public static void main (String[] args)
{
long arrai [][]= new long [100][1];
for (int a=00; a <=255; ++a)
for (int b =0; b < 1; ++b)
System.out.println (String.format(""+ a +"" ));
}
}
Este é o inicio do meu projecto, pode dizer-se o programa está a correr dentro do arrai?
No seguimento deste projecto pretendo incluir o seguinte código que gentilmente um user de outro forum fez para mim, mas na base de um array préviamente criado e funciona na perfeição!
Pattern pat = Pattern.compile ("(\d)\1{3,}");
for (int i = 0; i < x.length; ++i) {
String numero = Long.toString (x[i]);
if (pat.matcher (numero).find()) {
System.out.println (""+ numero +"");
Só que aqui o array / matriz (?) está a ser preenchido (daí eu perguntar se o programa está a correr dentro do array/matriz) e eu pretendia que esta busca para eliminação actuasse ao mesmo tempo se é que é possivel. Eu não tenho qualquer base de programação, em duas semanas dei umas voltas por C++ e Java e lá consegui fazer a 1ª parte, e julgo que ontem percebi o que é uma matriz, por isso, solicito a ajuda possivel, na adquação do 2º código ao primeiro ou a melhor forma de concluír este programa, que pretendo crie sequências hex de 12 digitos, onde não são permitidos mais de 4 digitos iguais seguidos. Obrigado.