為什么不可以調用equals方法
為什么不可以設置一個字符串,字符串內容是“a”(String ch = "a"),然后調用equals方法,與s.charAt(i)進行比較( ?ch.equals(s.charAt(i)) ?)?不也是一樣的內容嗎?為什么一定是同一個字符,而不能是內容相同呢??求解
為什么不可以設置一個字符串,字符串內容是“a”(String ch = "a"),然后調用equals方法,與s.charAt(i)進行比較( ?ch.equals(s.charAt(i)) ?)?不也是一樣的內容嗎?為什么一定是同一個字符,而不能是內容相同呢??求解
2014-11-08
舉報
2014-11-10
s.charAt(i)返回的值是char是一個基本類型,用==比較就可以了,只有當是引用類型的時候用equals會比較好
2017-05-24
equals表示兩個字符串完全相同,是來自同一對象的引用,地址相同。而==表示僅僅是字符串內容相同,地址不一定一樣。
2016-09-23
public static void main(String[] args) {
/* String str="學習 JAVA 編程 ";
System.out.println("獲取1位置字符"+str.charAt(1));
byte[]b=str.getBytes();
for(byte a:b){
System.out.print(a+" ");
*/
String s = "aljlkdsflkjsadjfklhasdkjlflkajdflwoiudsafhaasdasd";
? ??
? ? // 出現次數
int num = 0;
? ??
? ? ?// 循環(huán)遍歷每個字符,判斷是否是字符 a ,如果是,累加次數
for (int i=0;i<s.length();i++ ? ? ? ? ? ? ? ? ? ? ? )
{String b=s.substring(i,i+1);
? ? ? ? // 獲取每個字符,判斷是否是字符a
if (b.equals("a") )
//(s.charAt(i) +" ").equals("a"))
{
? ? ? ? ? ? // 累加統(tǒng)計次數
num++;?
}
}
System.out.println("字符a出現的次數:" + num);
}
這樣子也行
2016-09-01
字符的比較會不會是比較ASCII碼的值呢,因為感覺s.charAt(i)= = 'a'不太可能是同一個內存地址
2016-06-05
equal方法是String類型的方法,而char是基本數據類型,不是一個類,是沒有equal方法的,多想想類的概率,對象的該類,Java是面向對象的語言,需要慢慢體會,String源碼也非常簡單,可以自己看看找出定義的equal方法
2016-05-24
public class HelloWorld {
? ? public static void main(String[] args) {
// 定義一個字符串
String s = "aljlkdsflkjsadjfklhasdkjlflkajdflwoiudsafhaasdasd";
? ? ? ? // 出現次數
int num = 0;
? ? ? ??
? ? ? ? ?// 循環(huán)遍歷每個字符,判斷是否是字符 a ,如果是,累加次數
for (int i = 0 ; i < s.length(); i++){
? ? ? ? ? ? // 獲取每個字符,判斷是否是字符a
if ((s.charAt(i) + "").equals("a")) {
? ? ? ? ? ? ? ? // 累加統(tǒng)計次數
num ++;?
}
}
System.out.println("字符a出現的次數:" + num);
}
}
2015-06-11
equals 是引用類型String的方法,而s.charAt(i)返回的是一個字符,是一個基本數據類型的數據,不是一個對象,所以沒有equals方法。(有問題請批評指出啊,3q)
2015-04-24
因為.equals 只能比較類型相同的兩個對象內容,如果你把char轉換成string就可以用了,比如:
if ((s.charAt(i)+"").equals("a"))
2014-11-17
equals方法是比較兩個字符串是否相等,而這里charAt()方法返回的是一個字符型,兩個類型都不相同的變量,如何用equals比較?所以這里用字符型的數據采用==進行比較