webBG - програмисти, машинно обучение, javascript, python, php, питам, говорим, публикации

java String.valueOf проблем

Написах този код:

byte[] test = {-51};
byte[] test2 = {-51};
byte[] test3 = {-51};
System.out.println(String.valueOf(test));
System.out.println(String.valueOf(test2));
System.out.println(String.valueOf(test3));

И имам различни резултати:

[B@9304b1
[B@190d11
[B@a90653

Защо?

13.12.2012

  • Вие питате за стойността на масива. Това, което вероятно искате, е String.valueOf(test[0]) 13.12.2012

Отговори:


1

String.valueOf няма аргумент byte[], така че ще бъде обработен като Object и ще бъде извикан методът toString(), тъй като масивите не прилагат този метод, Object.toString() ще бъде процес в масива и неговият резултат варира от всеки екземпляр.

Ако искате да конвертирате byte[] в String, използвайте конструктора Низ(байт[]) или String(byte[] bytes, Charset charset)

byte[] test = {-51};
byte[] test2 = {-51};
byte[] test3 = {-51};
System.out.println(new String(test));
System.out.println(new String(test2));
System.out.println(new String(test3));

Резултат:

Í
Í
Í

Ако искате да видите съдържанието на масива, използвайте Arrays.toString(byte[])

byte[] test = {-51};
byte[] test2 = {-51};
byte[] test3 = {-51};
System.out.println(Arrays.toString(test));
System.out.println(Arrays.toString(test2));
System.out.println(Arrays.toString(test3));

Резултат:

[-51]
[-51]
[-51]
13.12.2012

2

Числата, които виждате, са хеш кодове на обектите на масива.

За да видите съдържанието на масивите, използвайте Arrays.toString():

System.out.println(Arrays.toString(test));
System.out.println(Arrays.toString(test2));
System.out.println(Arrays.toString(test3));
13.12.2012

3

toString pf всеки масив не използва стойностите в масива, за да създаде низа, който можете да използвате Arrays.toString(test); за това

13.12.2012

4

ValueOf() просто извиква toString() на даден обект. Ако искате да отпечатате съдържанието на масива, използвайте Arrays.toString() вместо това.

13.12.2012

5

Тъй като няма String.valueOf за байтов масив, когато му дадете byte[], той използва String.valueOf(Object obj).

13.12.2012
Нови материали

Записване на грешки — Как да записвате грешки във вашето приложение, за да ги отстраните по-късно
Записването на грешки е важна част от „обработването на грешки“. Накратко, когато възникнат определени грешки в програмите, вие искате да знаете за това. Това е особено важно при грешки. Ти..

Кратко въведение в теорията на графите
Кратко въведение в теорията на графите Втора част: внедряване на python на пълни графики В моята предишна статия въведох три основни концепции за графите: върхове, ръбове и тегла. В тази..

Днес ще пиша за машинно обучение. Смятам се за ентусиаст, а не за експерт, така че имайте това предвид. С това казано, искам...
Днес ще пиша за машинно обучение. Смятам се за ентусиаст, а не за експерт, така че имайте това предвид. С това казано искам да обясня защо машинното обучение има значение. За да бъда съвсем..

Какво е структурно типизиране и как Typescript го използва в своя полза?
Всички знаят тези дни, че „Typescript е строго синтактично надмножество на JavaScript и добавя незадължително статично въвеждане към езика.“. Но какво всъщност означава? Защо миграцията от..

3 начина за премахване на дубликати от масив в Javascript
Вие сте уеб разработчик? Програмист ли си? Тогава ще сте запознати с JavaScript и различните му вградени функции, методи и т.н. за различни реализации, проблеми и цели. Един от тези широко..

Архитектура и обучение на конволюционни невронни мрежи (7 точки):
Тази публикация предоставя подробности за архитектурата на Конволюционната невронна мрежа (CNN), функциите и обучението на всеки слой, завършвайки с резюме на обучението на CNN...

Създайте разширение за Chrome с помощта на Angular
Този урок е базиран на манифеста на разширението на chrome версия 3 (MV3), а също и на Angular версия 2+ (2, 3 и...). Ако не сте използвали манифест версия 3, можете да следвате този урок ,..