边听音乐边阅读吧~~
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
数据类型
创建字符串String
1、String s = new String({'g','o','o','d'}); 2、String s = new String("good"); 3、String s = new String({'g','o','o','d'}, 2, 1); // 从2开始取1个 4、String s; s = "good";
字符串操作
str.indexOf("g"); // 查找索引位置 str.lastIndexOf("g"); // 查找最后一次出现的索引位置 str.length; // 字符串长度 str.charAt(index); // 获取指定位置的字符 str.substring(beginIndex); // 获取子字符串 str.substring(index1, index2); // 获取子字符串 str.trim(); // 去除前后空格 str.replace(old, new); // 字符串替换 str.startsWith(string); // 判断字符串的开始 str.endsWith(string); // 判断字符串的结尾 str.equals(str2); // 判断字符串相等 str.equalsIgnoreCase(str2); // 忽略大小写的判断字符串相等 str.compareTo(str1); // 比较字符串 str.toLowerCase(); // 转为小写 str.toUpperCase(); // 转为大写 str.split(str); // 字符串分割 str.format(str, args); // 格式化字符串
输入: Scanner()
Scanner scan = new Scanner(System.in)
.hasNext() 判断是否存在下一个输入,返回bool类型。
.hasNextInt() 判断下一个输入是否为Int型,返回bool类型。
.next() 取下一个输入值,遇到结束符停止(空格键、Tab键或Enter键等)。
.nextLine() 取下一行输入值,遇到Enter键停止,可以获得空白。
字符切割:split() (1)split表达式,就是一个正则表达式。* ^ | 等符号在正则表达式中属于一种有特殊含义的字符,如果使用此种字符作为分隔符,必须使用转义符即 加以转义。 (2)如果使用多个分隔符则需要借助 | 符号,如 "^|@|#",但需要转义符的仍然要加上分隔符进行处理。
使用一个或多个空格分割字符串
str.split("s+");
String 转换成 int
1). int i = Integer.parseInt([String]);//遇到不能被转换为整型的字符时,会抛出异常 或 i = Integer.parseInt([String],[int radix]);//radix为进制数 2). int i = Integer.valueOf(str).intValue();
int 转换成 String
1.) String s = String.valueOf(i); 2.) String s = Integer.toString(i); 3.) String s = "" + i;
Char[] 转换成 String
String str = String.copyValueOf(charArray)
String 转换成 Char[]
char[] arr = str.toCharArray()
String 转换成 Int[]
int[] arr = Arrays.stream(str.split(" ")) .mapToInt(Integer::parseInt) .toArray();或String[] strSplit = str.split(" ");int[] intArray = new int[strSplit.length];for(int i=0; i
数组[]转list
List list = Arrays.asList(stringArray);List list = Arrays.asList(intArray);
float取整
// 1、向下取整:floorMath.floor(1.7); // 1// 2、向上取整:ceilMath.ceil(1.3); // 2// 3、四舍五入取整:roundMath.round(1.3); // 1Math.round(1.7); // 2
获取数组最大值
int max = Arrays.stream(arr).max().getAsInt();
函数迭代示例
// 输入: 一个整数,当月利润。// 输出: 一个整数,奖金。// 利润低于或等于100000元的,奖金可提10%;// 1000001000000时,超过1000000元的部分按1%提成。从键盘输入当月利润I,求应发奖金总数。static double solve(int val){if (val < 0) return 0;if (val <= 100000){return (val*0.1); }else if (val>100000 && val<=200000){ return (val-100000)*0.075+solve(val-100000); }else if (val>200000 && val<=400000){ return (val-200000)*0.05+solve(val-200000); }else if (val>400000 && val<=600000){ return (val-400000)*0.03+solve(val-400000); }else if (val>600000 && val<=1000000){ return (val-600000)*0.015+solve(val-600000); }else{ return (val-1000000)*0.01+solve(val-1000000); }}public static void main(String[] arg){ Scanner scanner = new Scanner(System.in); if (scanner.hasNextInt()){ System.out.println((int)solve(scanner.nextInt())); }}
HashMap方法
.put(Object key,Object value)// 添加元素.putAll(Collection c) // 添加元素,map1.putAll(map2).get(Object key) // 根据键来获取对应的值.containsKey(Object key) // 检测是否存在指定key的元素.containsValue(Object value) // 检测是否存在指定value的映射.remove(Object key) // 根据key的值删除指定的元素.values() // 返回值的集合.isEmpty() // 测试元素是否为空.clone() // 返回此HashMap实例的浅层副本:键和值本身未克隆.entrySet() // 将映射关系返回到Set中,通过Iterator或foreach输出,Set set = map1.entrySet();.keySet() // 将映射中所包含的键返回到Set中,通过Iterator或foreach输出,Set set = map1.keySet();.replace(K key, V oldValue, V newValue) // 替换指定键的项.size() // 返回此映射中的键值映射数.putIfAbsent(K key, V value) // key不存在才put,存在就跳过.getOrDefault(Object key, V defaultValue) // 返回指定键映射到的值,如果此映射不包含键的映射,则返回defaultValue
数组sort排序
1.Array.sort(int[] a) // 直接对数组进行升序排序2.Array.sort(int[] a , int fromIndex, int toIndex) // 对数组的从fromIndex到toIndex进行升序排序
list集合sort排序
1、降序排列Collections.sort(list, new Comparator() { public int compare(ResultTypeDesc o1, ResultTypeDesc o2{ return o2.getRatio().compareTo(o1.getRatio()); }}); 2、进行升序排列Collections.sort(list, new Comparator() { public int compare(ResultTypeDesc o1, ResultTypeDesc o2){ return o1.getRatio().compareTo(o2.getRatio()); }});
倒序输出
1、list集合:Collections.reverse(list);2、字符串:StringBuffer stringBuffer = new StringBuffer(str);stringBuffer.reverse();
捕捉异常
try{ // 程序代码块}catch(Exception e){ e.printStackTrace(); // 打印异常信息 // 异常处理代码块}finally{ // 始终执行代码块}
未完待续 ...