JAVA 两个相同字符串对比却不同的解决方法,查看隐藏的字符

事情是这样的,我需要读取一个文件,因此从windows复制了文件的路径进入代码,但是找不到文件。所以猜想路径的字符串含有隐藏字符:

public static void main(String[] args) throws IOException {
		//从我的文件目录复制的字符串
		//注意!这里需要你自己从电脑相应的目录复制
		String fuzhi="‪‪C:\\Test\\tst.xml";
		//手动输出的字符串
		String chunshouda="C:\\Test\\tst.xml";
		//把字符串转为字符数组
		char[] fuzhiArray = fuzhi.toCharArray();
		char[] chunshoudaArray = chunshouda.toCharArray();
		//输出的结果是这两个字符串不同
		System.out.println(fuzhi);
		System.out.println(chunshouda);
		System.out.println(fuzhi.equals(chunshouda));
		System.out.println("复制的字符串长度: "+fuzhi.length()+"\n"+"手打的字符串长度: "+chunshouda.length());
		for (int i = 0; i < fuzhiArray.length; i++) {
			System.out.print("["+fuzhiArray[i]+"]");
		}
		
		System.out.println();
		for (int i = 0; i < chunshoudaArray.length; i++) {
			System.out.print("["+chunshoudaArray[i]+"]");
		}
	}

 

 解决办法:

	public static void main(String[] args) throws IOException {
		//从我的文件目录复制的字符串
		//注意!这里需要你自己从电脑相应的目录复制
		String fuzhi="‪‪C:\\Test\\tst.xml";
		//手动输出的字符串
		String chunshouda="C:\\Test\\tst.xml";
		//把字符串转为字符数组
		char[] fuzhiArray = fuzhi.toCharArray();
		char[] chunshoudaArray = chunshouda.toCharArray();
		//输出的结果是这两个字符串不同
		System.out.println(fuzhi);
		System.out.println(chunshouda);
		System.out.println(fuzhi.equals(chunshouda));
		System.out.println("复制的字符串长度: "+fuzhi.length()+"\n"+"手打的字符串长度: "+chunshouda.length());
		for (int i = 0; i < fuzhiArray.length; i++) {
			System.out.print("["+fuzhiArray[i]+"]");
		}
		
		System.out.println();
		for (int i = 0; i < chunshoudaArray.length; i++) {
			System.out.print("["+chunshoudaArray[i]+"]");
		}
		
		System.out.println();
		System.out.println("===================解决办法==================");
		String fuzhiDeleteHidenChar = fuzhi.replaceAll("\\p{C}", "");
		System.out.println(fuzhiDeleteHidenChar.equals(chunshouda));
		
		char[] fuzhiDeleteHidenCharArray = fuzhiDeleteHidenChar.toCharArray();
		for (int i = 0; i < fuzhiDeleteHidenCharArray.length; i++) {
			System.out.print("["+fuzhiDeleteHidenCharArray[i]+"]");
		}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值