Java小知识点总结

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()]);  //支持转成各种数据数组,运行时决定的类型
原文地址:https://www.cnblogs.com/heshan664754022/p/2995294.html