package hello; /* * 在Eclipse中生成可执行jar文件,只需要通过 * File->Export->选择Runable jar file然后一步一步导出即可 * 对于控制台程序,直接双击执行是看不到执行结果的 * cmd打开控制台,然后执行java -jar jarfilepath * 就可以看到控制台的执行结果了 * */ public class World { public static void main(String[] args) { System.out.println("Hello java"); // String的基本操作 String str = "Hello world"; int worIndex = str.indexOf("wor"); System.out.println(String.format("worIndex is %1d", worIndex)); String world = str.substring(worIndex); System.out.println(world); // 包括startIndex,但是不包括endIndex String wor = str.substring(worIndex, worIndex + 3); System.out.println(wor); String plus = "Hello " + "world"; System.out.println(plus); // 大写转换 String upperCase = plus.toUpperCase(); System.out.println(upperCase); // 使用concat String a = "A"; a = a.concat("bc"); System.out.println(a); // char for (int i = 0; i < a.length(); i++) { System.out.print(a.charAt(i)); } for (char c : a.toCharArray()) { System.out.print(c); } System.out.println(); // split String toSplit = "Hello James Bond"; String[] words = toSplit.split(" "); for (String word : words) { System.out.println(word); } // compare String str1 = "abc"; String str2 = "def"; int compareResult = str1.compareTo(str2); System.out.println(compareResult); // startsWith,endsWith boolean isStartsWitha = str1.startsWith("a"); System.out.println(isStartsWitha); System.out.println(isStartsWitha); // StringBuffer考虑了线程同步,而StringBuilder没有考虑 // StringBuffer性能稍微差与StringBuilder在单线程情况下要使用StringBuilder StringBuffer sb = new StringBuffer(); sb.append("Hello"); sb.append(" "); sb.append("World"); String strValue = sb.toString(); System.out.println(strValue); StringBuilder sbr = new StringBuilder(); sbr.append("Hello "); sbr.append("Java"); System.out.println(sbr.toString()); // 数字格式化处理 studyFormatInteger(); // 格式浮点数 studyFormatFloat(); // 格式化中如果需要输入%,需要用两个来做转义 String formated = String.format("今日涨跌%1$.2f%%", 3.145); System.out.println(formated); } static void studyFormatFloat() { // 浮点数格式化 // %[index$][标识][最少宽度][.精度]转换方式 // 和整数的格式化基本相同,精度和转换方式不同 String[] formats = { // - 在最小宽度内左对齐,不可以与“用0填充”同时使用,保留两位小数 "%1$-6.2f", // +标识表示总是有一个符号,不省略+ "%1$+6.3f", // 标识表示正数前加空格,负数前加-号 "%1$ 6.3f", // 科学计数法表示数字 "%1$ 6.3e", // g或者G表示根据实际情况自动选择科学计数法还是普通方式 // 这个从输出结果看忽略了最少宽度为6和保留3位小数.3的设置 "%1$ 6.3g", "%1$g", // 'a', 'A' -- 结果被格式化为带有效位数和指数的十六进制浮点数 "%1$a" }; for (String format : formats) { float num = 3.14159f; String formated = String.format(format, num); System.out.println(formated); } } static void studyFormatInteger() { // 字符串的格式化 // java的字符串格式化更像c的printf,而不像c#的string.Format // 下面的博客很全面 // http://blog.csdn.net/andycpp/article/details/1749700 // 整形数字的格式化 // 对整数进行格式化:%[index$][标识][最小宽度]转换方式 // index下标从1开始 String strFormatInteger = String.format("%1$+5d;%2$ 5d", 99, 888); System.out.println(strFormatInteger); String[] formats = { "%1$-9d", "%1$#5X", "%1$+9d", "%1$09d", "%1$,9d", "%1$(9d" }; // java中没有foreach关键字,但可以用for (type varname : iterable)实现foreach for (String format : formats) { int num = -9999999; String formated = String.format(format, num); // System.out.println(formated); String output = String.format( "String.format(\"%1$s\",%2$d) == \"%3$s\"", format, num, formated); System.out.println(output); } } }