2015-04-20 4 views
0

Im пытается распечатать мой массив без всех скобок и запятых, поэтому я пытаюсь переопределить метод toString(); Тем не менее, я получаю вывод [I @ 5c647e05. Извините, если у моего сообщения плохая форма, это мой первый пост здесь. Im пытается отобразить массив как двоичное число. Ive попробовал toString(), но он содержит скобки и запятые, и я не могу это иметь.Печать массива в Java с помощью toString()

Вот мой код.

import java.util.Scanner; 
import java.util.Arrays; 
import java.io.*; 
import java.util.*; 

public class halfAdder { 
    public static int[] binary = new int[2]; 

    public static void main(String[] args) { 
     // Declaring booleans for the adder 
     int sum = 0; 
     int carry = 0; 
     boolean a = false; 
     boolean b = false; 
     int tempA = 0; 
     int tempB = 0; 
     int notA = 0; 
     int notB = 0; 


     // Collecting all the information needed from the user 
     Scanner console = new Scanner(System.in); 

     System.out.print("Please enter your input for A: "); 
     tempA = console.nextInt(); 
     System.out.print("Please enter an input for B: "); 
     tempB = console.nextInt(); 


     // Deciding if what we collected as an input is either 0 or 1 
     if(tempA == 0) 
     { 
      a = false; 
      notA = 1; 
      System.out.println("A hit first"); 
     } 
     else 
     { 
      System.out.println("hit second"); 
      a = true; 
      notA = 0; 
     } 

     if(tempB == 0) 
     { 
      System.out.println("B hit first"); 
      b = false; 
      notB = 1; 
     } 
     else 
     { 
      System.out.println("B hit second"); 
      b = true; 
      notB = 0; 
     } 

     sum = (notA*tempB)+(tempA*notB); 

     if(tempA == 1 && tempB == 1) 
     { 
      carry = 1; 
      sum = 0; 
     } 

     binary[0] = carry; 
     binary[1] = sum; 


     System.out.println("a = " + tempA); 
     System.out.println("b = " + tempB); 
     System.out.println("not a = " + notA); 
     System.out.println("not b = " + notB); 
     System.out.println("Sum = " + sum); 
     System.out.println("Carry = " + carry); 
     System.out.println(binary.toString()); 
    } 

    public String toString() 
    { 
     String binaryNumber = "The binary number is: "; 

     for(int i = 0; i < binary.length; i++) 
     { 
      binaryNumber += binary[i]; 
     } 
     return binaryNumber; 
    } 
} 

ответ

0

Проверьте метод Arrays.toString() для вывода массива в виде строки с одной строкой кода. Чтобы удалить запятые и скобки, используйте метод String.replace().

1

Если вы хотите, чтобы преобразовать массив в строку, используйте Arrays класс:

String arrayAsString = Arrays.toString(binary); 

Есть много способов отображения содержимого массива, как двоичное число (без запятой-х и скобки, которые добавляет вышеприведенный метод). Если вы используете Arrays.toString, вы можете проанализировать возвращаемую строку с помощью методов, предоставляемых в классе String. Кроме того, вы можете просто использовать StringBuilder (или дополнение String) и цикл по массиву.

+0

Спасибо за ответ; Однако я пытаюсь отобразить массив как двоичное число, например: 01 без скобок и запятых – Jordanthedud

+0

Затем просто проанализируйте результат или перейдем к массиву. См. Править – copeg

Смежные вопросы