2016-12-12 3 views
-1

Выход программы:Как получить значения байтов двух конкатенированных строк ...?

[[email protected][[email protected] 
[[email protected] 

Обязательный выход:

[[email protected][[email protected] 
[[email protected][[email protected] 

Пожалуйста, помогите ...

import java.util.Scanner; 
import java.io.InputStreamReader; 

public class testme { 
    public static void main(String[] args) { 
     Scanner in = new Scanner(new InputStreamReader(System.in)); 
     String s = "hello"; 
     String sb = "hi"; 
     String sc = s.concat(sb); 
     byte[] a, b; 
     a = s.getBytes(); 
     b = sb.getBytes(); 
     byte[] c = new byte[a.length + b.length]; 
     System.arraycopy(a, 0, c, 0, a.length); 
     System.arraycopy(b, 0, c, a.length, b.length); 
     System.out.println(a + "" + b + "\n" + c); 
    } 
} 
+0

что цель сканера в вашем примере? –

+0

Какова цель всей программы? – Kayaman

+0

Это не имеет смысла. Вы никогда не увидите «[B» четыре раза в своем выходе, если вы распечатываете только три массива (точнее, для строк этих массивов). Также, что представление String зависит от objectId тех массивов, которые не являются детерминированными. Вы, вероятно, хотите распечатать содержимое массива, а не toString .... –

ответ

0

В результате ваш

[[email protected], the [B means byte[] and 171ccb0 is the memory address of a variable used, separated by an @. 

Similarly, in [[email protected] , 35378d is the memory address of b variable created, and 

in [[email protected], 1d23632 is the memory address of c variable created. 

если вы w муравей знать, что значения сцепляются или не пытаться печатать метод Arrays.toString,

import java.util.Arrays; 

public class Solution { 
    public static void main(String[] args) { 
     String s = "hello"; 
     String sb = "hi"; 
     byte[] a, b; 
     a = s.getBytes(); 
     b = sb.getBytes(); 

     byte[] c = new byte[a.length + b.length]; 
     System.arraycopy(a, 0, c, 0, a.length); 
     System.arraycopy(b, 0, c, a.length, b.length); 

     System.out.println(" Arrays.toString(a)= "+Arrays.toString(a)); 
     System.out.println(" Arrays.toString(b)= "+Arrays.toString(b)); 
     System.out.println(" Arrays.toString(c)= "+Arrays.toString(c)); 

    } 
} 

Выход:

Arrays.toString(a)= [104, 101, 108, 108, 111] 
Arrays.toString(b)= [104, 105] 
Arrays.toString(c)= [104, 101, 108, 108, 111, 104, 105] 

Ссылка: How to convert Java String into byte[]?