Професионална програма
Loading...
+ Нов въпрос
nickpanaiotov avatar nickpanaiotov 21 Точки

[Technical Issue] Java Basics - Какво връща String.split() в java?

Здравейте колеги,

Защо да му го ********** String.split() не връща нормален си масив от стрингове. И по точно каквъв е проблема това да работи?

String[] splitInput =(inputString.split(" ".trim()));


int value = Integer.parseInt(splitInput[0]);
String word = splitInput[1];

 

Инта се парсва като хората, но като опитам if(measure =="думата") ми казва, че не е същия стринг и не минава проверката.

Пробвах с toString(), с trim() ... каквото се сетих, но уви.  Казва ми "думата" не е равна на "думата".

Поздрави : )

Тагове:
0
Java Advanced
lostm1nd avatar lostm1nd 121 Точки

В Java не можеш да сравняваш стрингове с оператора ==. Трябва да ги сравняваш с метода .equals ; ) Операторът == тества само дали сочат към един адрес - сравнява референции.

1
HPetrov avatar HPetrov 822 Точки

В Java не можеш да сравняваш голяма част от нещата чисто и просто с "==". Ползва се .equals или .compareTo.

1
kaizer avatar kaizer 35 Точки

И аз до преди малко нешо подобно пробвах :)

0
a_rusenov avatar a_rusenov 1103 Точки

Хаха и аз се мотах 100 часа докато се усетя :)) Както казаха колегите, в C# == ти е предефиниран да ги сравнява стринговете по стойност, а тук сравнява техните им адреси в паметта. Още по-тъпо е, че в java нямаш екстеншън методи, така че и да искаш, не можеш да overload-ваш оператори.

0
nickpanaiotov avatar nickpanaiotov 21 Точки

Много тъпо пък не знам и compareTo() и equalTo() не работят с референции. Едното може да е референция, но другото с което сравняваш иска да си е "стринг"; Тоест :

 

String word = "word";

compareTo(word) не работи иска compareTo("word"). Което според мен е пълен ташак, същата работа и с equalsTo()

0
ZvetanIG avatar ZvetanIG 917 Точки

" ".trim()   -   това няма особен смисъл, защото връща  ""  (празен низ). 

String[] splitInput =(inputString.split(" ".trim()));     Не ти работи коректно, защото подаваш празен низ на split и в този случай ти разбива стринга на символи.   

Например Ако въведеш 12 ще получиш масив с два елемента, който имат стойност "1" и "2".

0