转自 http://blog.csdn.net/aqi00/article/details/49997843

字符串的格式化

博主原来是搞C的,C里面有sprintf来格式化字符串,后来转到java变傻了,拼接String只会用n个“+”,要么就是用StringBuilder的append方法,但要是遇上把数字格式化的情况(比如左补0等等),就只能傻乎乎的if else判断该补几个0。
后来终于有一天,博主发现原来java也有格式化的函数(jdk1.5就提供了),就是String.format(String format, Object... args),用法跟C差不多,只是转换符有些区别。这下可算是从苦逼的if else中解脱出来了,下面就记录几个常用的格式转换符:
%s   : 字符串,如"hello"
%c   : 字符,如'a'
%b   : 布尔类型,如true或者false
%d   : 十进制整型数,如119
%x   : 十六进制整型数,如f0
%f   : 十进制浮点数,java在这里不像c有%f/%lf/%ld等区分浮点与双精度,java的float类型和double类型都用%f
%0nd : n是十进制整数,表示这里占着n位数字,位数如不足n则左补0

字符串转数字类型

前面格式化说的是各种类型的数据格式化成字符串,那有时又需要把字符串转成数字类型,其实也很简单,字符串转整型用Integer.parseInt(String s),字符串转浮点数用Double.parseDouble(String s)。
现在还有个比较常用的情况,就是转换浮点数时需要保留小数点后面一位或者后面两位。如果仅仅是取整,有现成的数学函数如四舍五入Math.round、向上取整Math.ceil、向下取整Math.floor,就是没有现成的保留多少位的函数,这时自己要做下处理了,处理的办法有如下五种:
1、使用String.format;
2、使用Formatter;
3、使用BigDecimal;
4、使用DecimalFormat;

5、使用NumberFormat;

示例如下:

public static String formatWithString(double value, int digit) {  String format = String.format("%%.%df", digit);  return String.format(format, value).toString();
}  public static String formatWithFormatter(double value, int digit) {  String format = String.format("%%.%df", digit);  return new Formatter().format(format, value).toString();
}  public static String formatWithBigDecimal(double value, int digit) {  BigDecimal bd = new BigDecimal(value);  bd = bd.setScale(digit, RoundingMode.HALF_UP);  return bd.toString();
}  public static String formatWithDecimalFormat(double src, int digit) {  String pre_format = String.format(".%%0%dd", digit);  String format = String.format(pre_format, 0);  DecimalFormat df = new java.text.DecimalFormat(format); //".00"  df.setRoundingMode(RoundingMode.HALF_UP);  String value = df.format(src);  return value;
}  public static String formatWithNumberFormat(double value, int digit) {  NumberFormat nf = NumberFormat.getNumberInstance();  nf.setMaximumFractionDigits(digit);  nf.setMinimumFractionDigits(digit);  nf.setRoundingMode(RoundingMode.HALF_UP);  // 如果想输出的格式用逗号隔开,可以设置成true  nf.setGroupingUsed(false);  return nf.format(value);
} 

字符串的合法验证

app经常要检查用户输入信息是否正确,例如手机号是否合法、电子邮箱是否合法、身份证号是否合法等等。这种合法性验证就得用到正则表达式,对应到具体的处理类,便是Pattern和Matcher。Pattern是预定义校验规则,而Matcher则是进行校验判断;另外,从java1.4开始,对于简单的格式校验,也可直接调用String类的matches方法。常用的字符串校验场景与相应的示例代码如下:

    public static boolean isPhoneByPattern(String phone) {  String regex = "^1[3|4|5|8]\\d{9}$";  Pattern pattern = Pattern.compile(regex);  Matcher matcher = pattern.matcher(phone);  return matcher.matches();  }  public static boolean isPhoneByString(String phone) {  // "[1]"代表第1位为数字1,"[358]"代表第二位可以为3、5、8中的一个,"\\d{9}"代表后面是可以是0~9的数字,有9位。  String regex = "[1][358]\\d{9}";  return phone.matches(regex);  }  public static boolean isEmailByPattern(String email) {  String regex = "^([a-zA-Z0-9_\\-\\.]+)@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.)|(([a-zA-Z0-9\\-]+\\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$";  Pattern pattern = Pattern.compile(regex);  Matcher matcher = pattern.matcher(email);  return matcher.matches();  }  public static boolean isEmailByString(String email) {  String regex = "([a-zA-Z0-9_\\-\\.]+)@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.)|(([a-zA-Z0-9\\-]+\\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)";  return email.matches(regex);  }  public static boolean isICNOByPattern(String icno) {  String regex15 = "^[1-9]\\d{7}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}$";  Pattern pattern15 = Pattern.compile(regex15);  Matcher matcher15 = pattern15.matcher(icno);  String regex18 = "^[1-9]\\d{5}[1-9]\\d{3}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}([0-9]|x|X)$";  Pattern pattern18 = Pattern.compile(regex18);  Matcher matcher18 = pattern18.matcher(icno);  return (matcher15.matches() || matcher18.matches());  }  public static boolean isICNOByString(String icno) {  String regex15 = "[1-9]\\d{7}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}";  String regex18 = "[1-9]\\d{5}[1-9]\\d{3}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}([0-9]|x|X)";  return (icno.matches(regex15) || icno.matches(regex18));  }  

Android字符串格式化相关推荐

  1. Android 字符串格式化 千位符

    Android 字符串格式化 千位符 字符串格式化工具类 千位符 & 千位符保留小数点后两位 import java.text.DecimalFormat; import java.text. ...

  2. android 字符串格式化

    Google在设计Android时遵守了大量MVC架构方式,可以让写公共代码.美工和具体逻辑开发人员独立出来.有关Android 的资源文件values/strings.xml中如何实现格式化字符串呢 ...

  3. Java字符串格式化

    原文出处:http://blog.csdn.net/lonely_fireworks/article/details/7962171/ 相关阅读 Java基础:String类 Java字符串格式化 J ...

  4. android 字符串,textview

    Android - CharSequence和String的比较和转换 Android自定义TextView边框颜色(动态改变边框颜色以及字体颜色) Android TextView加中划线,下划线 ...

  5. Java字符串格式化详解

    在 Java 的 String 类中,可以使用 format() 方法格式化字符串,该方法有两种重载形式: String.format(String format, Object- args) 和 S ...

  6. python 字符串格式化是打印不同类型更简单一些

    Python 支持格式化字符串的输出 与 C 中 sprintf 函数一样的语法 下面写3中不同类型的数据合在一起打印 name = "张三丰" height = 1.88 wei ...

  7. python格式化字符串_Python的3种字符串格式化方法,哪种你最喜欢?

    文末扫二维码领[Python开源项目包] 赠书×大厂笔面试题:秋招一直当炮灰?提升你实力的机会来了! 黄伟呢 | 作者数据分析与统计学之美 | 来源 1 3种字符串格式化工具的简单介绍 python2 ...

  8. python字符串格式化之学习笔记

    在python中格式化输出字符串使用的是%运算符,通用的形式为 •格式标记字符串 % 要输出的值组 其中,左边部分的"格式标记字符串"可以完全和c中的一致.右边的'值组'如果有两个 ...

  9. python字符串的美化_python字符串格式化

    Python的字符串格式化有两种方式:%格式符方式,format方式 %格式符 %[(name)][flags][width].[precision]typecode (name) 可选,用于选择指定 ...

最新文章

  1. GPU服务器选购指南-思腾合力篇
  2. 物联网:企业需要面临七大风险
  3. DB2日志传送基础知识简介
  4. 一个已经存在 10 年,却被严重低估的库
  5. [c#菜鸟]lambda表达式
  6. 浮栅场效应管 符号_场效应管主要参数与特点,场效应管与其他管子的对比
  7. VS2010连接MySql数据库时无法选择mysql database数据源
  8. 视觉SLAM笔记(27) 非线性最小二乘
  9. 数据库:mongodb与关系型数据库相比的优缺点zz (转)
  10. java jdbc元数据_JDBC元数据详解
  11. 创建包含法定节假日、工作日、周末的日历表(mysql、oracle通用)
  12. 【时间序列】多变量时间序列异常检测数据集整理及标准化处理代码合集
  13. 双目摄像机测深度原理
  14. 计算机维修与数据恢复论文,备份恢复论文,关于计算机数据备份数据恢复技术相关参考文献资料-免费论文范文...
  15. HOJ 2706 Key Task
  16. linux windows文件 编码_解决Linux与Windows文件显示乱码的问题
  17. 微信小程序(小程序的生命周期)
  18. 奥运五环-web前端
  19. 什么是BOM(Byte Order Mark)?
  20. 全国2010年1月电子商务与电子政务试题

热门文章

  1. ACM-ICPC 2021 亚洲区域赛 昆明站
  2. 解决 zbrush导出的模型在blender里没有颜色的问题
  3. 数据分析 - 美国金融科技公司Prosper的风险评分分析
  4. 托福高频真词List13 // 附托福TPO阅读真题
  5. HEVC学习(二十八) —— 量化之二
  6. Minecraft 1.12.2模组开发(十八) 自定义附魔
  7. java生成迷宫_java怎么生成迷宫地图
  8. 影视剪辑,自学剪辑的转场与准则,掌握一门剪辑技能
  9. 设计模式----装饰模式(JAVA)
  10. ios 页面即将消失_20个即将推出的页面介绍及如何正确处理它们