1.System.out.println('H'+'a');会打印167而不是Ha,因为‘H’与'a' 都是字符型字面常量,一个16位的无符号原始类型整数,
占用两个字节,可以存储单个汉字, 但不是字符串类型的,当进行加减乘除,大于小于比较的时候会把他们扩展为int型进行计算 。
char[] c=['1','2','3']; System.out.println("s"+c);
这个会打印:s[C@a90653,因为+在字符串连接的时候会对两边调用toString()方法,char[]数组会调用Object的toString()方法,
即打印内存地址的形式
2.如何求素数?
质数又称素数。指在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数整数的数
public static boolean isPrim(int number) { boolean isPrim=true; int k = (int)Math.sqrt(number); //number的平方根 然后用number去整除小于平方根大于2的数看是否能整除 for (int i = 2; i <= k; i++) { if (number%i==0) { isPrim=false; break; } } return isPrim; }
3.编写一个buddle方法,使String a=” 55674683421998” 内的数字按升序排列
方法1:使用内置的Arrays.sort()排序方法
String a = "55674683421998"; char[] d=a.toCharArray(); Arrays.sort(d); System.out.println(new String(d));
方法2:
public static String Buddle(String a) { char[] s = a.toCharArray(); for (int i = 0; i < s.length; i++) { for (int j = 0; j >s.length-i-1; j++) { if (s[j] > (s[j+1]) { char d = s[j+1]; s[j+1] = s[j]; s[j] = d; } } } return new String(s); }
4.list和字符串数组的转换
字符串数组转list:
String [] str={"test","hello","world"}; List<String> list=new ArrayList<String>(); list=Arrays.asList(str);
list转字符串数组:
List<String> list = new ArrayList<String>(); String[] toBeStored = list.toArray(new String[list.size()]); //支持转成各种数据数组,运行时决定的类型