Java学习路线-24:类库使用案例StringBuffer、Rondom、ResourceBundle、regex、Comparable
发布日期:2021-07-01 06:08:22
浏览次数:2
分类:技术文章
本文共 6598 字,大约阅读时间需要 21 分钟。
第14 章 : 类库使用案例分析
59 StringBuffer使用
使用StringBuffer追加26个小写字母。逆序输出,并删除前5个字符
StringBuffer允许修改 String不允许修改StringBuffer buff = new StringBuffer();for(int i = 'a'; i<='z'; i++){ buff.append((char)i);}System.out.println(buff.reverse().delete(0, 5));// utsrqponmlkjihgfedcba
60 随机数组
Rondom 产生5个[1, 30]之间随机数
import java.util.Arrays;import java.util.Random;class NumberFactory{ private static Random random = new Random(); public static int[] getRandomList(int num){ int[] list = new int[num]; int foot = 0; while (foot < num) { int value = random.nextInt(31); if (value !=0 ){ list[foot++] = value; } } return list; }}class Demo{ public static void main(String[] args) { int[] list = NumberFactory.getRandomList(5); System.out.println(Arrays.toString(list)); // [27, 3, 9, 4, 12] }}
61 Email验证
class Validator{ public static boolean isEmail(String email){ if(email == null || "".equals(email)){ return false; } String regex = "\\w+@\\w+\\.\\w+"; return email.matches(regex); }}class Demo{ public static void main(String[] args) { System.out.println(Validator.isEmail("ooxx@qq.com")); // true }}
62 扔硬币
0-1随机数模拟投掷硬币 1000次
import java.util.Random;class Coin{ private int front; private int back; private Random random = new Random(); public void throwCoin(int num){ for (int i = 0; i < num; i++) { int value = random.nextInt(2); if (value == 0){ this.front ++; } else{ this.back ++; } } } public int getFront() { return this.front; } public int getBack() { return this.back; }}class Demo{ public static void main(String[] args) { Coin coin = new Coin(); coin.throwCoin(1000); System.out.println("正面: " + coin.getFront()); System.out.println("背面: " + coin.getBack()); // 正面: 495 // 背面: 505 }}
63 IP验证
eg: 127.0.0.1
第一位 [12]? 第二位 [0-9]{0, 2}import java.util.Random;class Validator { public static boolean isIp(String ip) { String regex = "(\\d{1,3}\\.){3}\\d{1,3}"; if (!ip.matches(regex)) { return false; } String[] list = ip.split("\\."); for (String str : list) { int num = Integer.parseInt(str); if (num > 255 || !str.equals(Integer.toString(num))) { return false; } } return true; }}class Demo { public static void main(String[] args) { System.out.println(Validator.isIp("127.0.0")); // false System.out.println(Validator.isIp("127.0.0.1")); // true System.out.println(Validator.isIp("255.255.255.255")); // true System.out.println(Validator.isIp("255.255.255.666")); // false System.out.println(Validator.isIp("255.255.001.1")); // false }}
64 HTML拆分
import java.util.regex.Matcher;import java.util.regex.Pattern;class Demo { public static void main(String[] args) { String html = ""; String regex = "\\w+=\"[a-zA-Z0-9,\\+]+\""; Matcher matcher = Pattern.compile(regex).matcher(html); while (matcher.find()){ String temp = matcher.group(0); String[] result = temp.split("="); System.out.println(result[0] + "\t" + result[1].replaceAll("\"", "")); /** * face Arial,Serif * size +2 * color red */ } }}
65 国家代码
实现国际化应用
输入国家代号,调用资源文件 3个资源文件# message.propertiesinfo=默认资源# message_en_US.propertiesinfo=英文资源# message_zh_CN.propertiesinfo=中文资源
import java.io.UnsupportedEncodingException;import java.util.Locale;import java.util.ResourceBundle;class MessageUtil { // 将固定的内容定义为常量 private static final String CHINA = "cn"; private static final String ENGLISH = "en"; private static final String BASENAME = "message"; private static final String KEY = "info"; public static String getMessage(String country) throws UnsupportedEncodingException { Locale locale = getLocale(country); if (locale == null) { return null; } else { ResourceBundle bundle = ResourceBundle.getBundle(BASENAME, locale); return new String(bundle.getString(KEY).getBytes("ISO-8859-1"), "utf-8"); } } private static Locale getLocale(String country) { switch (country) { case CHINA: return new Locale("zh", "CN"); case ENGLISH: return new Locale("en", "US"); default: return null; } }}class Demo { public static void main(String[] args) throws UnsupportedEncodingException { if (args.length < 1) { System.out.println("请输入:cn 或者 en"); System.exit(1); } System.out.println(MessageUtil.getMessage(args[0])); // 中文资源 }}
66 学生信息比较
先用成绩比较,如果相同按年龄比较
数据结构姓名:年龄:成绩|姓名:年龄:成绩eg:张三:21:98|李四:23:96|王五:24:94
结构化的字符串处理
import java.io.UnsupportedEncodingException;import java.util.Arrays;class Student implements Comparable{ private String name; private int age; private double score; public Student(String name, int age, double score) { this.name = name; this.age = age; this.score = score; } @Override public int compareTo(Student other) { // 先用成绩比较,再用年龄比较 if(this.score > other.score){ return 1; } else if (this.score < other.score){ return -1; } else{ return this.age - other.age; } } @Override public String toString() { return "Student{" + name + ',' + age + ", " + score + "}"; }}class Demo { public static void main(String[] args) throws UnsupportedEncodingException { String data = "张三:21:98|李四:23:96|王五:24:94"; String[] list = data.split("\\|"); Student[] students = new Student[list.length]; for (int i = 0; i < list.length; i++) { String[] temp = list[i].split(":"); students[i] = new Student(temp[0], Integer.parseInt(temp[1]), Double.parseDouble(temp[2])); } Arrays.sort(students); System.out.println(Arrays.toString(students)); // [Student{王五,24, 94.0}, Student{李四,23, 96.0}, Student{张三,21, 98.0}] }}
转载地址:https://pengshiyu.blog.csdn.net/article/details/103284992 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
第一次来,支持一个
[***.219.124.196]2024年05月08日 17时45分06秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
映 射 ALT 键
2019-05-01
vim使用快捷键F4生成文件头注释、F5生成main函数模板、F6生成.h文件框架模板
2019-05-01
OV5620的视频驱动
2019-05-01
C++中两个类交叉定义或递归定义的解决办法
2019-05-01
记一次Hive 行转列 引起的GC overhead limit exceeded
2019-05-01
OpenGL ES八 - 交叉存取顶点数据
2019-05-01
crontab定时任务写法
2019-05-01
nginx: [emerg] unknown directive "if($remote_addr" in /usr/local/tools/nginx/conf/nginx.conf:57
2019-05-01
module pip has no attribute main问题解决
2019-05-01
LeetCode 134.Gas Station (加油站)
2019-05-01
Python之命名元组 (namedtuple)
2019-05-01
使用libpcap过滤arp
2019-05-01
[转帖]Robots.txt指南
2019-05-01
多用户与多租户的区别
2019-05-01
Python自动化运维 - day14 - JavaScript基础
2019-05-02
oracle保存小数点前为"0"的问题
2019-05-02
ipvsadm 安装配置
2019-05-02
Linux shell脚本的字符串截取
2019-05-02
1小时点击量破千万!阿里巴巴首发:MySQL高级调优笔记!全是技术重点
2019-05-02