String和Arrays中万能的方法——学到了

1、直接用字符串比较表示处于区间内,0-9,a-z,A-Z

String.compareTo()方法

如果两个字符串不一样长,第一个字符和参数的第一个字符不等,结束比较,返回第一个字符的ASCII码差值。
如果第一个字符和参数的第一个字符相等,则以第二个字符和参数的第二个字符做比较,以此类推,直至不等为止,返回该字符的ASCII码差值。
如果两个字符串不一样长,可对应字符又完全一样,则返回两个字符串的长度差值


	@Test
    public void test(){
        System.out.println("15".compareTo("10"));//输出 5,第一个字符相同,返回第二个字符差值的ASCII码值 5
        System.out.println("35".compareTo("255"));//输出 1,第一个字符不同,返回第一个字符差值的ASCII码值 1
        System.out.println("5".compareTo("10"));// 输出 4,第一个字符不同,返回第一个字符差值的ASCII码值 4
        System.out.println("15".compareTo("25"));// 输出 -1,第一个字符不同,返回第一个字符差值的ASCII码值 -1
    }

2、将二维字符数组一键转化成字符串

String.copyValueOf(char[])方法,将二维字符数组转化成String,用到的String.copyValueOf(char[])的方法


	public List<String> char2List(char[][] path){
        LinkedList<String> list = new LinkedList<>();
        for (char[] ch : path) {
            list.add(String.copyValueOf(ch));
        }
        return list;
    }

3、Arrays比较数值非常需要注意

发现了一个问题:[[-2147483646,-2147483645],[2147483646,2147483647]]的比较,应该与范围有关?


//得出:[[2147483646,2147483647],[-2147483646,-2147483645]]
Arrays.sort(points,(x,y)->x[0]-y[0])

// 得出[[-2147483646,-2147483645],[2147483646,2147483647]]
Arrays.sort(points,(x,y)->Integer.compare(x[0],y[0]));

//参考其他网友这种写法,这里如果两个值是相等的,那么compare方法需要返回0
//否则 可能 会在排序时抛错,而JDK6是没有这个限制的。Comparison method violates its general contract!
Arrays.sort(points, (p1, p2) -> p1[1] < p2[1] ? -1 : 1);

4、Arrays一键打印二维数组

Arrays.deepToString(int[][] ...)

5、Arrays将二维list一键转化成二维数组

List<int[]> list = new ArrayList<>();
...
return list.toArray(new int[list.size()][]);//这一步一键转化二维数组
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值