我来自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;
}
答案 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