Home avatar

Lruihao's Note

Lruihao's GitHub chart

用记事本编写第一个 Java 程序

之所以用记事本来写不是为了装 X 或者什么的。反而恰恰是返璞归真,因为在用 java 语言进行程序开发时,首先是以纯文本的方式编写所有的 java 源程序,并保存成以.java为后缀的文件;然后将这些源程序用javac编译成.class后缀名的字节代码文件;字节代码不是被本地处理器执行的代码,而是能够被 java 虚拟机(JVM)执行的代码。最后用 java 运行工具在 JVM 执行 java 应用程序。
由于 JVM 可以运行在不同的操作系统上,因此同一个字节代码文件可以跨平台运行。

  • javac
  • java

Java 正则表达式练习

邮箱

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegexDemo {
    public static void main(String[] args) {
//       Pattern 类 正则表达式的编译表示。
        Pattern pattern = Pattern.compile("^[a-zA-Z0-9_!#$%&'*+/=?`{|}~^.-]+@[a-zA-Z0-9.-]+$");
        String[] emails = {"admin@lruihao.cn", "lruihao.cn"};
        for (String email :
                emails) {
//Matcher 通过解释 Pattern 对字符序列执行匹配操作的引擎
            Matcher matcher = pattern.matcher(email);
            System.out.println(email + "匹配结果:" + matcher.matches());
        }
    }
}
1
2
admin@lruihao.cn 匹配结果true
lruihao.cn 匹配结果false

电话

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
package base;

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegexTest {
  public static void main(String[] args) {
    Pattern patter=Pattern.compile("^[1][3,4,5,7,8][0-9]{9}$");
    Scanner sc=new Scanner(System.in);
    String telnum=sc.nextLine();
    sc.close();
    Matcher matcher=patter.matcher(telnum);
    System.out.println(telnum+"匹配结果: "+matcher.matches());
  }
}
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
/**
 * 获取当前的 httpSession
 * @return
 */
public static HttpSession getSession() {
 return getRequest().getSession();
}
/**
 * 手机号验证
 * @param str
 * @return 验证通过返回 true
 */
public static boolean isMobile(final String str) {
  Pattern p = null;
  Matcher m = null;
  boolean b = false;
  p = Pattern.compile("^[1][3,4,5,7,8][0-9]{9}$"); // 验证手机号
  m = p.matcher(str);
  b = m.matches();
  return b;
}
/**
 * 电话号码验证
 * @param str
 * @return 验证通过返回 true
 */
public static boolean isPhone(final String str) {
  Pattern p1 = null, p2 = null;
  Matcher m = null;
  boolean b = false;
  p1 = Pattern.compile("^[0][1-9]{2,3}-[0-9]{5,10}$"); // 验证带区号的
  p2 = Pattern.compile("^[1-9]{1}[0-9]{5,8}$");     // 验证没有区号的
  if (str.length() > 9) {
    m = p1.matcher(str);
    b = m.matches();
  } else {
    m = p2.matcher(str);
    b = m.matches();
  }
  return b;
}

身份证

1
2
3
4
/* 身份证正则表达式 16 或 18 */
   public static final String IDCARD="((11|12|13|14|15|21|22|23|31|32|33|34|35|36|37|41|42|43|44|45|46|50|51|52|53|54|61|62|63|64|65)[0-9]{4})" +
           "(([1|2][0-9]{3}[0|1][0-9][0-3][0-9][0-9]{3}" +
           "[Xx0-9])|([0-9]{2}[0|1][0-9][0-3][0-9][0-9]{3}))";

Java 常用类

StringBuffer/StringBuilder(掌握)

StringBuffer 是线程安全的可变字符串

StringBuilder 是线程不安全的可变字符串。
和 StringBuffer 的功能一样。就是效率高一些,但是不安全。

HDU 1009 FatMouse' Trade(贪心)

题目大意

题目链接
老鼠有 M 磅猫食 , 有 N 个房间 , 每个房间前有一只猫 , 房间里有老鼠最喜欢的食品 J[i] , 若要得到房间的食物 , 必须付出相应的猫食 F[i] , 当然这只老鼠没必要每次都付出所有的 F[i],若它付出 F[i] 的 a%,则得到 J[i] 的 a%,求老鼠能吃到的最多的食物。

前端面试题 - HTML+CSS

原文链接
“卓越班”到了大三突然掀起一股毕业慌,一部分人投身于考研的热潮中,一部分人选择了培训机构学习技术。而我出于种种原因既不考研也不培训,选择自学 java 和 web 相关的知识,也希望因此能在以后谋得一份心仪的工作。

如果文章中有出现纰漏、错误之处,还请看到的小伙伴多多指教,先行谢过

百钱百鸡(枚举法)

我国古代数学家张丘建在《算经》一书中提出的数学问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?

发现新版本

当前站点有新版本可用。