Строка Android не равна - PullRequest
2 голосов
/ 24 мая 2011

Я новичок в Java и Android, поэтому уверен, что это будет простой вопрос / ответ.Я знаю, что, чтобы узнать, равна ли строка другой строке, вы используете функцию равенства.В моей ситуации я сканирую QR-код, где результат сканирования аналогичен «EMPLOYEE ~~ John Smith ~~ DIVISION ~~ Maintenance».Мне нужно знать, как сделать следующее:

String contents = intent.getStringExtra("SCAN_RESULT");
// I know that "contents" contains the string " EMPLOYEE~~John Smith~~DIVISION~~Maintenance"

String[] myJunk = contents.split("~~");
// This should split everything up into an array named myJunk (right)?

String val1 = myJunk[0];
// Now val1 Should be equal to "EMPLOYEE"

if (myJunk[0].equals(val1)){
    // Do Something
}

В примере кода Java myJunk [0] никогда не равняется val1.Что я делаю не так?

Ответы [ 3 ]

2 голосов
/ 24 мая 2011

Я пробовал это, и это работает, поэтому попробуйте отобразить переменную содержимого, возможно, проблема в дополнительных функциях, попробуйте отобразить ее в logCat:

String contents = "EMPLOYEE~~John Smith~~DIVISION~~Maintenance";
 String[] myJunk = contents.split("~~");
 // This should split everything up into an array named myJunk (right)?

 String val1 = myJunk[0];
 Toast.makeText(this, "val1 = "+val1, Toast.LENGTH_LONG).show();
 Toast.makeText(this, "val2 = "+myJunk[1], Toast.LENGTH_LONG).show();
 // Now val1 Should be equal to "EMPLOYEE"

 if (myJunk[0].equals(val1)){
     Toast.makeText(this, "equals", Toast.LENGTH_LONG).show();
 }
0 голосов
/ 24 мая 2011

Метод, который я обычно использую, это распечатывать мои переменные, когда сомневаешься.Так что, если вы не уверены, где проблема, вы можете попробовать что-то вроде этого.(Требуется, чтобы вы могли видеть вывод, например, в logcat)

String contents = intent.getStringExtra("SCAN_RESULT"); 
// I know that "contents" contains the string " EMPLOYEE~~John Smith~~DIVISION~~Maintenance"
System.out.println("contents is "+contents );

String[] myJunk = contents.split("~~"); 
// This should split everything up into an array named myJunk (right)?
System.out.println("Array size is "+myJunk.length);

String val1 = myJunk[0]; 
// Now val1 Should be equal to "EMPLOYEE"

for(int i=0; i < myJunk.length; i++) {
  System.out.println("String "+i+ "in array is: "+myJunk[i]);
}
//Here i run through the array and print every element.

if (myJunk[0].equals(val1)){     
// Do Something 
} 

Это немного излишне, но это в основном для того, чтобы показать один из способов получения всей информации, необходимой для поискапроблема:)

0 голосов
/ 24 мая 2011

Ваша строка: EMPLOYEE~~John Smith~~DIVISION~~Maintenance

Поэтому после разделения myJunk [0] будет содержать EMPLOYEE (обратите внимание на пробел перед словом EMPLOYEE).

Так что перед сравнением вам нужно будет обрезать ваше значение

...