基础储备----Java字符串小数点处理


1. 前言

今天帮同学做题的时候涉及到利用小数点切分字符串, 感觉以后在后台开发中可能会遇到这个问题, 所以记录一下.

2. 概述

错误的处理方式, 编译能通过, 运行时且不会报错, 但是输出结果是0,

String input = "hello.java";
String[] outputs = input.split(".");
System.out.println(outputs.length);

正确的处理方式

String input = "hello.java";
String[] outputs = input.split("\\.");
System.out.println(outputs.length);

3. 解释

首先抛出来2个问题:
问题1: 小数点不是转义字符, 为什么不能直接用split(.)?
问题2: 为什么非要加2个反斜杠, 只加1个不行吗?

下面给出解释
解答问题1: split里面的参数是正则表达式, 在正则表达式中, 小数点表示可以匹配任意字符, 所以不能直接用小数点.
解答问题2: 由于问题1已经解决, 很自然的想法就是加上反斜杠来进行转义, 而且这个转义语法其实只有正则表达式能够识别, Java语言中并不支持这种转义, 所以只加一个反斜杠是不行的, 再通俗点说就是, 我要告诉正则表达式2个字符, 一个是反斜杠, 一个是小数点, 反斜杠由于是特殊字符, 所以我要通过转义了告诉正则表达式, 而小数点不是特殊字符, 所以我可以直接告诉正则表达式, 最后的结果就是两个反斜杠+小数点.

  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值