java字符串比较
1. java字符串比较
1、采用循环,循环b的每个字符
2、用replace方法把a中的当前循环的字符用""替换replace(当前字符, "");
3、循环完了就剩下b中不包含的字符串了Stringc = 24;
4、再循环c,跟上面的步骤一样去除a中包含的c中的字符2,4,剩下的字符串和b是一样的。
2. java如何比较字符串
"=="和equals方法究竟有什么区别?(这是我的个人总结,很详细)
答:==操作符专门用来比较两个变量的值是否相等,也就是用于比较变量所对应的内存中所存储的数值是否相同,要比较两个基本类型的数据或两个引用变量是否相等,只能用==操作符。
如果一个变量指向的数据是对象类型的,那么,这时候涉及了两块内存,对象本身占用一块内存(堆内存),变量也占用一块内存,例如Objet obj = new Object();变量obj是一个内存,new Object()是另一个内存,此时,变量obj所对应的内存中存储的数值就是对象占用的那块内存的首地址。对于指向对象类型的变量,如果要比较两个变量是否指向同一个对象,即要看这两个变量所对应的内存中的数值是否相等,这时候就需要用==操作符进行比较。
equals方法是用于比较两个独立对象的内容是否相同,就好比去比较两个人的长相是否相同,它比较的两个对象是独立的。例如,对于下面的代码:
String a=new String("foo");
String b=new String("foo");
两条new语句创建了两个对象,然后用a,b这两个变量分别指向了其中一个对象,这是两个不同的对象,它们的首地址是不同的,即a和b中存储的数值是不相同的,所以,表达式a==b将返回false,而这两个对象中的内容是相同的,所以,表达式a.equals(b)将返回true。
在实际开发中,我们经常要比较传递进行来的字符串内容是否等,例如,String input = …;input.equals(“quit”),许多人稍不注意就使用==进行比较了,这是错误的,随便从网上找几个项目实战的教学视频看看,里面就有大量这样的错误。记住,字符串的比较基本上都是使用equals方法。
如果一个类没有自己定义equals方法,那么它将继承Object类的equals方法,Object类的equals方法的实现代码如下:
boolean equals(Object o){
return this==o;
}
这说明,如果一个类没有自己定义equals方法,它默认的equals方法(从Object 类继承的)就是使用==操作符,也是在比较两个变量指向的对象是否是同一对象,这时候使用equals和使用==会得到同样的结果,如果比较的是两个独立的对象则总返回false。如果你编写的类希望能够比较该类创建的两个实例对象的内容是否相同,那么你必须覆盖equals方法,由你自己写代码来决定在什么情况即可认为两个对象的内容是相同的。
例:
public class compared {
public static void main(String[] args) {
String a = new String("info");
String b = new String("info");
//a和b是两个不同的变量,而info是这两个变量所只对象内存中所存放的值
String c = "info"; //这里的info是变量c内存中存储的值
String d = "info";
int e = 1;
int f = 1;
System.out.println(a.equals(b)); //true 比较的是a和b两个对象中的内容是否一样
System.out.println(a == b); //false
System.out.println("-----------------");
System.out.println(c.equals(d)); //true
System.out.println(c == d); //true
System.out.println("-----------------");
System.out.println(e == f); //true
System.out.println("-----------------");
T t1 = new T(3,"aaa");
T t2 = new T(3,"bbb");
T t3 = new T(3,"aaa");
System.out.println(t1.equals(t2)); //false
System.out.println(t1.equals(t3)); //false
//为什么都是false,因为我们没有自定义equals方法,所以默认使用了Object的equals方法,而Object方法内部是使用==来比较的,因此此时你比较的永远都是两个变量是否指向同一对象,而这时都为新对象,所以为false。
}
}
疑问:String str = "...";啥意思?
3. JAVA比较两个字符串是否相等用什么
JAVA比较两个字符串是否相等可以用equals方法或者是“==”。
equals 方法常常用来检测两个对象是否相等,即两个对象的内容是否相等,如果只是比较对象的内容,而不比较对象来源和功能类型时,常用此方法。
“==”常用于用于比较引用和比较基本数据类型时是否具有不同的功能,比较基本数据类型,如果两个值相同,则结果为true而在比较引用时,如果引用指向内存中的同一对象,结果为true。
(3)java字符串比较扩展阅读
equals 方法的特点:
1、自反性:x.equals(x)返回true;
2、对称性:若x.equals(y)为true,则y.equals(x)亦为true;
3、传递性:若x.equals(y)为true且y.equals(z)也为true,则x.equals(z)亦为true;
4、一致性:x.equals(y)的第一次调用为true,那么x.equals(y)的第二次、第三次、第n次调用也均为true,前提条件是没有修改x也没有修改y;
5、对于非空引用x,x.equals(null)永远返回为false。
4. java比较两字符串是否相等有几种方法
String 的equals 方法用于比较两个字符串是否相等。由于字符串是对象类型,所以不能用简单的“==”判断。而使用equals比较两个对象的内容是否相等。
注意:
equals()比较的是对象的内容(区分字母的大小写格式),但是如果使用“==”比较两个对象时,比较的是两个对象的内存地址,所以不相等。即使它们内容相等,但是不同对象的内存地址也是不相同的。
5. java String类型比较
string类型比较有很多种,我们主要来讲一下用的比较多的两种(equals和==)
例如:
String s1,s2,s3 = "abc", s4 ="abc" ;
s1 = new String("abc");
s2 = new String("abc");
那么:
s1==s2 是 false //两个变量的内存地址不一样,也就是说它们指向的对象不 一样,故不相等。
s1.equals(s2) 是 true //两个变量的所包含的内容是abc,故相等。
总结:"=="比较的是两个变量的内存地址,equals比较的是内容;
左上角有我头像,欢迎来学习交流;
6. java怎么比较字符串大小
java的String类中有一个compareTo的方法。
publicclasstest{
publicstaticvoidmain(String[]args){
Stringa="abb";
Stringb="abc";
System.out.println(a.compareTo(b));
Stringa1="abc";
Stringb1="abc";
System.out.println(a1.compareTo(b1));
Stringa2="abd";
Stringb2="abc";
System.out.println(a2.compareTo(b2));
}
}
小于输出负数,相等输出0,大于输出正数
7. java中比较两个字符串是否相等的方法
你好,比较两个字符串是否相等可以用equals方法。
比如要比较字符串变量a和字符串变量b是否相等就是a.equals(b)。这个表达式返回这个布尔值,为true表示相等,为false表示不相等。
8. JAVA如何进行字符串比较
1、首先,随便创建一个有main方法的类。
9. java中两个字符串如何比较大小
有三种方法实现
第一种直接用字符串类的compareTo方法:
Stringt1="20131011";
Stringt2="20131030";
intresult=t1.compareTo(t2);
第二种是把这个日期字符串转换成long:
SimpleDateFormatsdf=newSimpleDateFormat("yyyyMMdd");
Dated1=sdf.parse(t1);
Dated2=sdf.parse(t2);
longresult=d1.getTime()-d2.getTime();
第三种是把日期字符串转换成整形int:
intint1=Integer.parseInt(t1);
intint2=Integer.parseInt(t2);
intresult=int1-int2;
注:result大于0,则t1>t2;
result等于0,则t1=t2;
result小于0,则t1<t2;
10. 在java中如何对比输入的字符串
java中字符串的比较用的是equals方法。
代码修改如下:
import java.io.*;
class GameHelper {
public String getUserInput(String prompt) {
String inputLine = null;
System.out.print(prompt + " ");
try {
BufferedReader is = new BufferedReader(new InputStreamReader(System.in));
inputLine = is.readLine();
if (inputLine.length() == 0)
return null;
} catch (Exception e) {
System.out.println("IOException: " + e);
}
return inputLine;
}
}
public class Demo {
public static void main (String[] arges) {
GameHelper helper = new GameHelper();
String input = helper.getUserInput("entrer a command");
if ( input.equals("-yes"))
System.out.println("yes");
else System.out.println("no");
}
}
只需将input == "-yes"改为input.equals("-yes")就行了,字符串型的比较不是用==,是用equals,int型和float型等的比较才能使用==来比较。