支持任何对象类型,有更多的错误检查. package Stack; /** * Created by Frank */ public class MyStack<T> implements SimpleStack<T> { public static void main(String[] args) { MyStack<String> stack = new MyStack<>(); stack.push("Frank"); stack.…
堆栈(Stack)是一种常见的数据结构,符合后进先出(First In Last Out)原则,通常用于实现对象存放顺序的逆序.栈的基本操作有push(添加到堆栈),pop(从堆栈删除),peek(检测栈顶元素且不删除). /** * Created by Frank */ public class ToyStack { /** * 栈的最大深度 **/ protected int MAX_DEPTH = 10; /** * 栈的当前深度 */ protected int depth = 0;…
Java版本:1.8开始 import java.time.LocalDate; import java.time.LocalDateTime; /** * Created by Frank */ public class DateParse { public static void main(String[] args) { String armisticeDate = "1914-11-11"; LocalDate alD = LocalDate.parse(armisticeDa…
Java版本:1.8开始 import java.time.Instant; import java.time.ZoneId; import java.time.ZonedDateTime; /** * Created by Frank */ public class CurrentDatetime { public static void main(String[] args) { // 纪元秒和本地日期时间互换 Instant epochSec = Instant.ofEpochSecond…
Java版本:1.8开始 import java.time.LocalDate; import java.time.LocalDateTime; import java.time.LocalTime; import java.time.ZonedDateTime; import java.time.format.DateTimeFormatter; /** * Created by Frank */ public class CurrentDatetime { public static voi…
/** * Created by Frank * 比较浮点数 */ public class FloatCmp { // 公差 private final static Double EPSILON = 0.0000001; public static void main(String[] args) { double da = 3 * .3333333333; double db = 0.99999992857; // 基本类型可以优先使用==进行比较 if (da == db) { Syst…
默认情况下,正则表达式 ^ 和 $ 忽略行结束符,仅分别与整个输入序列的开头和结尾匹配.如果激活 MULTILINE 模式,则 ^ 在输入的开头和行结束符之后(输入的结尾)才发生匹配.处于 MULTILINE 模式中时,$ 仅在行结束符之前或输入序列的结尾处匹配. import java.util.regex.Pattern; /** * Created by Frank * 使用正则表达式在文本中查找换行符 */ public class NLMatch { public static voi…
默认是:区分大小写的: 传递标志参数:Pattern.CASE_INSENSITIVE,以说明匹配时忽略大小写:如果你的代码运行在不同的地区那么你应该再添加一个Pattern.UNICODE_CASE标志. import java.util.regex.Pattern; /** * Created by Frank * 在正则表达式中控制大小写 */ public class CaseMatch { public static void main(String[] args) { Pattern…
import java.util.regex.Matcher; import java.util.regex.Pattern; /** * Created by Frank */ public class REMatch { public static void main(String[] args) { String patt = "Q[^u]\\d+\\."; Pattern r = Pattern.compile(patt); String line = "Order…
import java.util.regex.Pattern; /** * Created by Frank * 在Java中使用正则表达式:测试模式 */ public class RESimple { public static void main(String[] args) { String pattern = "^Q[^u]\\d+\\."; String[] input = {"QA777. is the next flight. It is on time.&q…
在Java诞生之际,Unicode码是一个16位的字符集,因此char值似乎顺其自然为16位宽,多年来一个char变量几乎可以表示任何Unicode字符. /** * Created by Frank */ public class UnicodeChars { public static void main(String[] args) { StringBuilder b = new StringBuilder(); for (char c = 'a'; c < 'd'; c++) { b.a…
使用StringBuilder类的reverse()方法来实现. /** * Created by Frank */ public class StringRevChar { public static void main(String[] args) { String sh = "ABCDEFG"; System.out.println(sh + "->" + new StringBuilder(sh).reverse()); } }…
使用for循环和String对象的charAt()方法:或者,使用"for each"循环和String对象的toCharArray()方法. /** * Created by Frank */ public class StrCharAt { public static void main(String[] args) { String a = "A quick bronze fox lept a lazy bovine"; for (int i = 0; i &…
JAVA经典算法40例 [程序1] 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21.... public class exp2{ public static void main(String args[]){ int i=0; for(i=1;i<=20;i++) System.out.println(f(i))…