Java判断字符串是否相等及去除空格

判断字符串相等:

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String name = new String("Jack");
		String dbValue = new String("Jack");
		
		System.out.println(name==dbValue);
		System.out.println(name.equals(dbValue));
		System.out.println(dbValue.equalsIgnoreCase(name));
		
		String str1="Tom";
		String str2="Tom";
		System.out.println((str1==str2)+"str1==str2");
	}

以上程序会输出 :

false
true
true
truestr1==str2

第一个为什么不相等呢,在java中使用new创建的对象其实是在堆内存中,所以两个不同对象的地址是不同的,所以使用==比较得到的就是false,当使用String类的equals方法时比较的是两个String对象的内容,所以得到的boolean值是true。

而equaisIgnoreCase方法为忽略大小写的判断两个字符串是否相等。

再来看看是str1和str2为什么就可以使用==呢,因为用双引号的字符串其实在内存中有一个匿名对象,内存也只会有一份,当给引用对象赋值时,其实在内存中只会有这一份,所以str1和str2在内存中指向了同一块内存。

 

在String中还提供了endswith和startswith方法:

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String a = "HelloJava.java";
		boolean bool1 = a.endsWith(".java");
		boolean bool2 = a.endsWith(".jpg");
		
		
		System.out.println("bool1 = "+bool1);
		System.out.println("bool2 = "+bool2);
		
		String b = "新华社发来消息";
		boolean bool3 = b.startsWith("新华社");
		boolean bool4 = b.startsWith("新华书店");
		
		System.out.println("bool3 = "+bool3);
		System.out.println("bool4 = "+bool4);
	}

输出结果:

bool1 = true
bool2 = false
bool3 = true
bool4 = false
这里一个是比较字符串末尾与指定字符串并返回bool值,一个是从头比较的方法,要根据具体情况使用对应的方法。

去除字符串的空格:

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String str1 = "        abc    ";
		System.out.println("["+str1+"]");
		System.out.println("["+str1.trim()+"]");
		
		String str2 = " a 		b   c de f   ";
		System.out.println("["+str2+"]");
		//replaceAll第一个参数为正则表达式,第二个参数为替换成的内容
		System.out.println("["+str2.replaceAll("\\s", ".")+"]");

	}

输出结果:[        abc    ]
[abc]
[ a         b   c de f   ]
[abcdef]

第一个方法是trip方法,没有参数,它会去除字符串开头和结尾的空格,并且返回去掉空格后的字符串;

第二个方法是replaceAll,第一个参数为正则表达式,第二个参数为替换成的内容,当然你也可以将任意字符替换为其它的,注意这里正则表达式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值