Android将字符串与==比较到每个对象

时间:2015-05-14 01:20:30

标签: android

我来自C#,所以我通常尝试将我正在做的所有内容联系起来。

我无法弄清楚为什么以下声明不起作用。基本上String val =“admin”。然后我有一个if语句,但if语句总是false。我确信这很简单。

谢谢!

 EditText edt = (EditText) findViewById(R.id.email);
    //String val = edt.getText().toString();
    String val = "admin";

    EditText edt2 = (EditText) findViewById(R.id.password);
    String val2 = edt2.getText().toString();
if(val.toString() == "admin") {
String hero = val;
}

6 个答案:

答案 0 :(得分:0)

使用.equals()代替==

例如:

if (val.equals("admin")) ... 

答案 1 :(得分:0)

你应该使用

var sourceSpreadsheetID = "ID HERE";
var sourceWorksheetName = "SHEET NAME HERE";
var destinationSpreadsheetID = "ID HERE";
var destinationWorksheetName = "SHEET NAME HERE";

function importData() {
  var thisSpreadsheet = SpreadsheetApp.openById(sourceSpreadsheetID);
  var thisWorksheet = thisSpreadsheet.getSheetByName(sourceWorksheetName);
  var thisData = thisWorksheet.getDataRange();
  var toSpreadsheet = SpreadsheetApp.openById(destinationSpreadsheetID);
  var toWorksheet = toSpreadsheet.getSheetByName(destinationWorksheetName);
  var toRange = toWorksheet.getRange(1, 1, thisData.getNumRows(),    thisData.getNumColumns())
  toRange.setValues(thisData.getValues()); 

而不是使用等号。在java中使用等号是询问它们是否是同一个对象,即使字符串相同也是如此。

另外,要小心你在if语句中所做的事情,因为变量" hero"在那个街区之外无法进入。

答案 2 :(得分:0)

在Java中,您无法使用==来比较字符串 您需要像这样更改您的if语句

if(val.equals("admin")){}

答案 3 :(得分:0)

首先,您从未将String val的值更改为任何内容,因此无需尝试将其转换为if语句中的字符串。

user = User.new
physician = Physician.new

user.physician = physician
user.physician?
 => false
user.role
 => "assistant"

希望这有帮助

答案 4 :(得分:0)

在java中,==运算符检查每个值的地址,equals()方法检查值。

所以如果你想比较每个字符串的值,你应该使用equals()方法。

请搜索“按引用呼叫”和“按值呼叫”的概念。

你已经将val声明为String,因此它不需要toString()

if(val.equals("admin")) {   
     String hero = val;
}

答案 5 :(得分:0)

我很惊讶没有人提到.matches().equals()之间的区别,这取决于您的需求,您还可以寻找的是.matches()

if(val.toString().matches("admin")) {
String hero = val;
}

Matches检查String与正则表达式模式的匹配,而不是相同的字符串。

例如:

"hello".equals(".*e.*"); // false
"hello".matches(".*e.*"); // true