Ir ao conteúdo
  • Cadastre-se

Converter código c# para java


Homer xD

Posts recomendados

Salve pessoal,
 
Preciso converter um código em C# para Java, porém travei nesta parte:
 
Código Original em C#:
 
public static void ShowMatrix(double[][] matrix, int numRows, int decimals, bool newLine) {
            for (int i = 0; i < numRows; ++i)
            {
                Console.Write(i.ToString().PadLeft(3) + ": ");
                for (int j = 0; j < matrix[i].Length; ++j)
                {
                    if (matrix[i][j] >= 0.0) Console.Write(" "); else Console.Write("-");
                    Console.Write(Math.Abs(matrix[i][j]).ToString("F" + decimals) + " ");
                }
                Console.WriteLine("");
            }
            if (newLine == true) Console.WriteLine("");
        }

 

O que eu fiz em Java:
public static void ShowMatrix(double[][] matrix, int numRows, int decimals, boolean newLine)  {
            for (int i = 0; i < numRows; ++i)
            {
AQUI >>>>      System.out.print(StringUtils.leftPad(String.valueOf(i), 3) + ": ");
                for (int j = 0; j < matrix[i].length; ++j)
                {
                    if (matrix[i][j] >= 0.0) System.out.println(" "); else System.out.println("-");
AQUI >>>>    System.out.print(new Double(Math.abs(matrix[i][j])).toString(Double.parseDouble("F" + decimals)) + " ");
                }
                System.out.println("");
            }
            if (newLine == true) System.out.println("");
        }

 

Minha dúvida é desse método toString, até fiz algumas modificações, mas o resultado não está saindo como no original. Qual seria o erro?
 
Obrigado desde já...
Link para o comentário
Compartilhar em outros sites

Homer, não sei qual o resultado esperado, mas a montagem de informações textuais em Java possui recursos facilitadores, veja este post:

 

http://claudioweiler.blogspot.com.br/2011/06/formatando-mensagens-strings-em-java.html

 

----

Observações quanto a sua pergunta:

 

O uso do toString no seu código está errado:

new Double(Math.abs(matrix[i][j])).toString(Double.parseDouble("F" + decimals))

o método toString(Double) é um método estático, ou seja, deve ser acessado diretamente pela classe, mas no seu código ele está sendo chamado de uma instância, então o valor da instância está sendo jogado fora, você pode usar:

new Double(Math.abs(matrix[i][j])).toString();
// ou
Double.toString(Double.parseDouble("F" + decimals)));
// mas este ainda é muito estranho e pode ficar assim:
Double.parseDouble("F" + decimals).toString();

Outro problema é o parseDouble com uma string iniciando por F, isto significa que você está tentando interpretar um hexadecimal, isto está correto?

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!