摘要:语法清单翻译自的,从属于笔者的入门与实践系列。需要注意的是,此文在上也引起了广泛的讨论,此文讲解的语法要点还是以为主,未涉及中内容,略显陈旧,读者可以带着批判的视角去看。
Java CheatSheet 基础 hello, world! : if-else: loops: do-while:Java 语法清单翻译自 egek92 的 JavaCheatSheet,从属于笔者的 Java 入门与实践系列。时间仓促,笔者只是简单翻译了些标题与内容整理,支持原作者请前往原文点赞。需要注意的是,此文在 Reddit 上也引起了广泛的讨论,此文讲解的语法要点还是以 Java 7 为主,未涉及 Java 8 中内容,略显陈旧,读者可以带着批判的视角去看。
do { System.out.println("Count is: " + count); count++; } while (count < 11);switch-case: 数组: 二维数组: 对象: 类: 方法: Java IDE 比较:
yes I took this from Wikipedia
个人推荐 IntelliJ IDEA 并且对于 学生免费.
字符串操作 字符串比较:boolean result = str1.equals(str2); boolean result = str1.equalsIgnoreCase(str2);搜索与检索:
int result = str1.indexOf(str2); int result = str1.indexOf(str2,5); String index = str1.substring(14);单字节处理:
for (int i=0;i字符串反转: public class Main { public static void main(String[] args) { String str1 = "whatever string something"; StringBuffer str1buff = new StringBuffer(str1); String str1rev = str1buff.reverse().toString(); System.out.println(str1rev); } }按单词的字符串反转:public class Main { public static void main(String[] args) { String str1 = "reverse this string"; Stack大小写转化:String strUpper = str1.toUpperCase(); String strLower = str1.toLowerCase();首尾空格移除:String str1 = " asdfsdf "; str1.trim(); //asdfsdf空格移除:str1.replace(" ","");字符串转化为数组:String str = "tim,kerry,timmy,camden"; String[] results = str.split(",");数据结构 重置数组大小:int[] myArray = new int[10]; int[] tmp = new int[myArray.length + 10]; System.arraycopy(myArray, 0, tmp, 0, myArray.length); myArray = tmp;集合遍历:for (Iterator it = map.entrySet().iterator();it.hasNext();){ Map.Entry entry = (Map.Entry)it.next(); Object key = entry.getKey(); Object value = entry.getValue(); }创建映射集合:HashMap map = new HashMap(); map.put(key1,obj1); map.put(key2,obj2); map.put(key2,obj2);数组排序:int[] nums = {1,4,7,324,0,-4}; Arrays.sort(nums); System.out.println(Arrays.toString(nums));列表排序:List列表搜索:unsortList = new ArrayList (); unsortList.add("CCC"); unsortList.add("111"); unsortList.add("AAA"); Collections.sort(unsortList); int index = arrayList.indexOf(obj);finding an object by value in a hashmap:hashmap.containsValue(obj);finding an object by key in a hashmap:hashmap.containsKey(obj);二分搜索:int[] nums = new int[]{7,5,1,3,6,8,9,2}; Arrays.sort(nums); int index = Arrays.binarySearch(nums,6); System.out.println("6 is at index: "+ index);arrayList 转化为 array:Object[] objects = arrayList.toArray();将 hashmap 转化为 array:Object[] objects = hashmap.entrySet().toArray();时间与日期类型 打印时间与日期:Date todaysDate = new Date(); //todays date SimpleDateFormat formatter = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss"); //date format String formattedDate = formatter.format(todaysDate); System.out.println(formattedDate);将日期转化为日历:Date mDate = new Date(); Calendar mCal = Calendar.getInstance(); mCal.setTime(mDate);将 calendar 转化为 date:Calendar mCal = Calendar.getInstance(); Date mDate = mDate.getTime();字符串解析为日期格式:public void StringtoDate(String x) throws ParseException{ String date = "March 20, 1992 or 3:30:32pm"; DateFormat df = DateFormat.getDateInstance(); Date newDate = df.parse(date); }date arithmetic using date objects:Date date = new Date(); long time = date.getTime(); time += 5*24*60*60*1000; //may give a numeric overflow error on IntelliJ IDEA Date futureDate = new Date(time); System.out.println(futureDate);date arithmetic using calendar objects:Calendar today = Calendar.getInstance(); today.add(Calendar.DATE,5);difference between two dates:long diff = time1 - time2; diff = diff/(1000*60*60*24);comparing dates:boolean result = date1.equals(date2);getting details from calendar:Calendar cal = Calendar.getInstance(); cal.get(Calendar.MONTH); cal.get(Calendar.YEAR); cal.get(Calendar.DAY_OF_YEAR); cal.get(Calendar.WEEK_OF_YEAR); cal.get(Calendar.DAY_OF_MONTH); cal.get(Calendar.DAY_OF_WEEK_IN_MONTH); cal.get(Calendar.DAY_OF_MONTH); cal.get(Calendar.HOUR_OF_DAY);calculating the elapsed time:long startTime = System.currentTimeMillis(); //times flies by.. long finishTime = System.currentTimeMillis(); long timeElapsed = startTime-finishTime; System.out.println(timeElapsed);正则表达式 使用 REGEX 寻找匹配字符串:String pattern = "[TJ]im"; Pattern regPat = Pattern.compile(pattern,Pattern.CASE_INSENSITIVE); String text = "This is Jim and that"s Tim"; Matcher matcher = regPat.matcher(text); if (matcher.find()){ String matchedText = matcher.group(); System.out.println(matchedText); }替换匹配字符串:String pattern = "[TJ]im"; Pattern regPat = Pattern.compile(pattern,Pattern.CASE_INSENSITIVE); String text = "This is jim and that"s Tim"; Matcher matcher = regPat.matcher(text); String text2 = matcher.replaceAll("Tom"); System.out.println(text2);使用 StringBuffer 替换匹配字符串:Pattern p = Pattern.compile("My"); Matcher m = p.matcher("My dad and My mom"); StringBuffer sb = new StringBuffer(); boolean found = m.find(); while(found){ m.appendReplacement(sb,"Our"); found = m.find(); } m.appendTail(sb); System.out.println(sb);打印所有匹配次数:String pattern = "sa(w)*t(w)*"; //contains "at" Pattern regPat = Pattern.compile(pattern); String text = "words something at atte afdgdatdsf hey"; Matcher matcher = regPat.matcher(text); while(matcher.find()){ String matched = matcher.group(); System.out.println(matched); }打印包含固定模式的行:String pattern = "^a"; Pattern regPat = Pattern.compile(pattern); Matcher matcher = regPat.matcher(""); BufferedReader reader = new BufferedReader(new FileReader("file.txt")); String line; while ((line = reader.readLine())!= null){ matcher.reset(line); if (matcher.find()){ System.out.println(line); } }匹配新行:String pattern = "d$"; //any single digit String text = "line one line two line three "; Pattern regPat = Pattern.compile(pattern, Pattern.MULTILINE); Matcher matcher = regPat.matcher(text); while (matcher.find()){ System.out.println(matcher.group()); }regex:beginning of a string: ^
end of a string: $
0 or 1 times: ?
0 or more times: (*) //without brackets
1 or more times: +
alternative characters: [...]
alternative patterns: |
any character: .
a digit: d
a non-digit: D
whitespace: s
non-whitespace: S
word character: w
non word character: W
数字与数学操作处理 built-in types:byte: 8bits, Byte
short: 16bits, Short
long: 64bits, Long
float: 32bits, Float
判断字符串是否为有效数字:String str = "dsfdfsd54353%%%"; try{ int result = Integer.parseInt(str); } catch (NumberFormatException e){ System.out.println("not valid"); }比较 Double:Double a = 4.5; Double b= 4.5; boolean result = a.equals(b); if (result) System.out.println("equal");rounding:double doubleVal = 43.234234200000000234040324; float floatVal = 2.98f; long longResult = Math.round(doubleVal); int intResult = Math.round(floatVal); System.out.println(longResult + " and " + intResult); // 43 and 3格式化数字:double value = 2343.8798; NumberFormat numberFormatter; String formattedValue; numberFormatter = NumberFormat.getNumberInstance(); formattedValue = numberFormatter.format(value); System.out.format("%s%n",formattedValue); //2.343,88格式化货币:double currency = 234546457.99; NumberFormat currencyFormatter; String formattedCurrency; currencyFormatter = NumberFormat.getCurrencyInstance(); formattedCurrency = currencyFormatter.format(currency); System.out.format("%s%n",formattedCurrency); // $ 234.546.457,99二进制、八进制、十六进制转换:int val = 25; String binaryStr = Integer.toBinaryString(val); String octalStr = Integer.toOctalString(val); String hexStr = Integer.toHexString(val);随机数生成:double rn = Math.random(); int rint = (int) (Math.random()*10); // random int between 0-10 System.out.println(rn); System.out.println(rint);计算三角函数:double cos = Math.cos(45); double sin = Math.sin(45); double tan = Math.tan(45);计算对数double logVal = Math.log(125.5);Math library: 输入输出操作: 从输入流读取://throw IOexception first BufferedReader inStream = new BufferedReader(new InputStreamReader(System.in)); String inline =""; while (!(inline.equalsIgnoreCase("quit"))){ System.out.println("prompt> "); inline=inStream.readLine(); }格式化输出:StringBuffer buffer = new StringBuffer(); Formatter formatter = new Formatter(buffer, Locale.US); formatter.format("PI: "+Math.PI); System.out.println(buffer.toString());formatter format calls: 打开文件:BufferedReader br = new BufferedReader(new FileReader(textFile.txt)); //for reading BufferedWriter bw = new BufferedWriter(new FileWriter(textFile.txt)); //for writing读取二进制数据:InputStream is = new FileInputStream(fileName);int offset = 0; int bytesRead = is.read(bytes, ofset, bytes.length-offset);文件随机访问:File file = new File(something.bin); RandomAccessFile raf = new RandomAccessFile(file,"rw"); raf.seek(file.length());读取 Jar/zip/rar 文件:ZipFile file =new ZipFile(filename); Enumeration entries = file.entries(); while(entries.hasMoreElements()){ ZipEntry entry = (ZipEntry) entries.nextElement(); if (entry.isDirectory()){ //do something } else{ //do something } } file.close();文件与目录 创建文件:File f = new File("textFile.txt"); boolean result = f.createNewFile();文件重命名:File f = new File("textFile.txt");File newf = new File("newTextFile.txt"); boolean result = f.renameto(newf);删除文件:File f = new File("somefile.txt"); f.delete();改变文件属性:File f = new File("somefile.txt"); f.setReadOnly(); // making the file read only f.setLastModified(desired time);获取文件大小:File f = new File("somefile.txt");long length = file.length();判断文件是否存在:File f = new File("somefile.txt"); boolean status = f.exists();移动文件:File f = new File("somefile.txt"); File dir = new File("directoryName"); boolean success = f.renameTo(new File(dir, file.getName()));获取绝对路径:File f = new File("somefile.txt"); File absPath = f.getAbsoluteFile();判断是文件还是目录:File f = new File("somefile.txt"); boolean isDirectory = f.isDirectory(); System.out.println(isDirectory); //false列举目录下文件:File directory = new File("users/ege"); String[] result = directory.list();创建目录:boolean result = new File("users/ege").mkdir();网络客户端 服务器连接:String serverName = "www.egek.us"; Socket socket = new Socket(serverName, 80); System.out.println(socket);网络异常处理:try { Socket sock = new Socket(server_name, tcp_port); System.out.println("Connected to " + server_name); sock.close( ); } catch (UnknownHostException e) { System.err.println(server_name + " Unknown host"); return; } catch (NoRouteToHostException e) { System.err.println(server_name + " Unreachable" ); return; } catch (ConnectException e) { System.err.println(server_name + " connect refused"); return; } catch (java.io.IOException e) { System.err.println(server_name + " " + e.getMessage( )); return; }包与文档 创建包:package com.ege.example;使用 JavaDoc 注释某个类:javadoc -d homehtml -sourcepath homesrc -subpackages java.netJar 打包:jar cf project.jar *.class运行 Jar:java -jar something.jar排序算法Bubble Sort
Linear Search
Binary Search
Selection Sort
Insertion Sort
Over here
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/66772.html
摘要:使用文件与以下好处安全。包作为内嵌在平台内部处理的标准,能够在各种平台上直接使用命令详解创建文件该命令没有显示压缩过程,执行结果是将当前路径下的路径下的全部内容生成一个文件。使用如下命令即可将清单文件中的对提取到文件中。 JAR,Java Archive File,Java档案文件。JAR文件是一种压缩文件,与ZIP压缩文件兼容,通常称为JAR包。JAR文件中默认包含了一个名为META...
摘要:雅虎从很早就开始招聘和培养研究型人才,雅虎研究院就是在这个过程中应运而生的。今天我就来说一说雅虎研究院的历史,以及过去十多年间取得的成就,聊一聊如何通过引进高级人才,迅速构建起一支世界级的研发团队。 showImg(https://segmentfault.com/img/remote/1460000013995512); 作者:王下邀月熊 编辑:徐川 前端每周清单专注大前端领域内容,...
摘要:是完全的面向对象语言,它们通过类的形式组织函数和变量,使之不能脱离对象存在。而在基于原型的面向对象方式中,对象则是依靠构造器利用原型构造出来的。 JavaScript 函数式脚本语言特性以及其看似随意的编写风格,导致长期以来人们对这一门语言的误解,即认为 JavaScript 不是一门面向对象的语言,或者只是部分具备一些面向对象的特征。本文将回归面向对象本意,从对语言感悟的角度阐述为什...
阅读 2081·2021-11-11 16:55
阅读 3149·2021-10-11 10:58
阅读 3016·2021-09-13 10:28
阅读 3932·2021-07-26 23:57
阅读 979·2019-08-30 15:56
阅读 1317·2019-08-29 13:15
阅读 1241·2019-08-26 18:18
阅读 1243·2019-08-26 13:44