Java 经典实例摘记前5章 字符串和数字

    xiaoxiao2021-12-14  39

    个人总结的《Java经典实例》中没注意到的地方,每一个点以问题或要求为标题,后跟书中相关联的对应章节

    获得环境变量(2.1)

    使用System.getenv()可获得全部环境变量,使用System.getenv("PATH")传入各种值可获得对应变量

    这个方法在JDK1.1之后被废弃,在JDK1.5之后重新启用

    获取系统属性

    使用System.getProperties()或者System.getProperty("")获得系统属性

    可以使用System.getProperties().list(System.out)将结果输出出来

    Java平台无关的文件名分隔符和路径分隔符(2.4)

    系统文件名分隔符(String):separator(例如:)系统文件名分隔符(char):separatorChar系统路径分隔符(String):pathSeparator(例如:;)系统路径分隔符(char):pathSeparatorChar

    Unix、Windows各平台上述分隔符并不相同 路径分隔符Unix下是 :,Windows是 ;,Windows把 :当作驱动器号的分隔符;文件分隔符Unix下是 /,Windows下是 \,Windows把 /当作了选项分隔符,而选项分隔符在Unix下是 -。

    分割用固定字符分隔的字符串(3.2)

    使用StringTokenizer类,实现了迭代器和枚举接口 StringTokenizer对象有方法hasMoreToken()和nextToken() 构建StringTokenizer需要待待分割的字符串和指定的分割符,指定的分隔符可以是多个,例如:

    StringTokenizer st=new StringTokenizer("The String wait for headle",",|");//分隔符是‘,’和‘|’

    正则表达式相关(4.5附近)

    整体流程简记:

    Pattern pattern=Pattern.compile("regexString",CASE_INSENSITIVE|MUTILINE);//第二个参数可以指定选项 Matcher matcher=pattern.matcher(InputString); if(matcher.find()){ System.out.println(matcher.group(0)); System.out.println(matcher.start()); //some methods matcher.replaceAll(newString); matcher.appendReplacement(StringBulider sb,newString); matcher.appendTail(StringBuilder sb); }

    浮点数的比较

    计算机无法精确表示0.1及它的任意次方,所以浮点数比较和整数不一样,基本类型无法正确比较,要依靠Float和Double,使用其中的equal()方法

    数字的格式化(5.8)

    使用text包下的NumberFormat对象 调用NumberFormat的getInstance方法会的到一个DecimalFormat实例,对实例调用 setMinimumIntegerDigits(int) setMaximumIntegerDigits(int) 方法可以设置显示的数字的 整数 部分的最大宽度和最小宽度,调用 setMinimumFractionDigits(int) setMaximumFractionDigits(int) 方法可以设置显示的数字的 小数 部分的最大宽度和最小宽度 该类默认是按照系统的Locale设置的显示钱币和数字的方式,当然可以通过getInstance传入一个Locale自定义 此外,还可以直接new 一个DecimalFormat,设置各个属性,尤其,可以在构造函数中传入一个字符串,控制显示格式 类似于new DecimalFormat("###.00000##"); 此外,NumberFormat类还有静态方法getCurrencyInstance、getIntegerInstance、getPercentInstance分别得到货币、数字、百分数的DecamalFormat。

    附一张网上找到的参数表格:

    符号位置本地化?含义0数字是阿拉伯数字#数字字是阿拉伯数字,如果不存在则显示为空.数字是 小数分隔符或货币小数分隔符-数字是减号,数字是分组分隔符E数字是分隔科学计数法中的尾数和指数。在前缀或后缀中无需加引号。;子模式边界是分隔正数和负数子模式%前缀或后缀是乘以 100 并显示为百分数/u2030前缀或后缀是乘以 1000 并显示为千分数¤(/u00A4)前缀或后缀否货币记号,由货币符号替换。如果两个同时出现,则用国际货币符号替换。如果出现在某个模式中,则使用货币小数分隔符,而不使用小数分隔符。‘前缀或后缀否用于在前缀或或后缀中为特殊字符加引号,例如 “’#’#” 将 123 格式化为 “#123”。要创建单引号本身,请连续使用两个单引号:”# o”clock”。

    处理不连续的整数序列(5.10)

    使用BitSet,使用Bit,节省空间

    处理的特别大的数字(5.19)

    使用BigInteger和BigDecimal类,通过构造函数传入大数的字符串,构造不可变的大数对象

    转载请注明原文地址: https://ju.6miu.com/read-971442.html

    最新回复(0)