String类的compareTo()和compareToIgnoreCase()

compareTo()的返回值是int,它是先比较对应字符的大小(ASCII码顺序)

1、如果字符相等返回值0

2、如果第一个字符和参数的第一个字符不等,结束比较,返回他们之间的差值(ascii码值)(负值代表:前字符串的值小于后字符串,正值代表:前字符串大于后字符串)

3、如果第一个字符和参数的第一个字符相等,则以第二个字符和参数的第二个字符做比较,以此类推,直至比较的字符或被比较的字符有一方全比较完,这时就比较字符的长度. 

compareToIgnoreCase()方法是不区分大小写,返回值是int,比较方式与compareTo()相同

		String s1 = "adger";
		String s2 = "adgerfa";
		String s3 = "ADGER";
		String s4 = "adher";
		System.out.println(s1.compareTo(s2));//-2
		System.out.println(s1.compareTo(s3));//32
		System.out.println(s1.compareToIgnoreCase(s3));//0
		System.out.println(s3.compareToIgnoreCase(s4));//-1


应用:不分大小写,比较字符串的大小,按照从小到大排序

package interview;
 
import java.util.Scanner;
 
/**
 * 比较输入字符串的大小:不分大小写,按照字符串的大小排序
 * String类的compareToIgnoreCase()方法
 * @author USER
 *
 */
public class TestCompareTo {
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		String string = in.nextLine();
		String[] s = string.split(" ");
		for (int i = 0; i < s.length-1; i++) {
			for (int j = i+1; j < s.length; j++) {
				if (s[i].compareToIgnoreCase(s[j]) > 0) {
					String temp = s[i];
					s[i] = s[j];
					s[j] = temp;
				}
			}
		}
		
		for (int i = 0; i < s.length; i++) {
			System.out.print(s[i]+" ");
		}
		
	}
}
 
//测试
//输入:fas rew ada ADE FAA re bci def BCr aC Bc
//输出:aC ada ADE Bc bci BCr def FAA fas re rew 

 

ascll顺序表:

 

ASCII值 控制字符 ASCII值 控制字符 ASCII值 控制字符 ASCII值 控制字符
0 NUT 32 (space) 64 @ 96
1 SOH 33 ! 65 A 97 a
2 STX 34 " 66 B 98 b
3 ETX 35 # 67 C 99 c
4 EOT 36 $ 68 D 100 d
5 ENQ 37 % 69 E 101 e
6 ACK 38 & 70 F 102 f
7 BEL 39 , 71 G 103 g
8 BS 40 ( 72 H 104 h
9 HT 41 ) 73 I 105 i
10 LF 42 * 74 J 106 j
11 VT 43 + 75 K 107 k
12 FF 44 , 76 L 108 l
13 CR 45 - 77 M 109 m
14 SO 46 . 78 N 110 n
15 SI 47 / 79 O 111 o
16 DLE 48 0 80 P 112 p
17 DCI 49 1 81 Q 113 q
18 DC2 50 2 82 R 114 r
19 DC3 51 3 83 S 115 s
20 DC4 52 4 84 T 116 t
21 NAK 53 5 85 U 117 u
22 SYN 54 6 86 V 118 v
23 TB 55 7 87 W 119 w
24 CAN 56 8 88 X 120 x
25 EM 57 9 89 Y 121 y
26 SUB 58 : 90 Z 122 z
27 ESC 59 ; 91 [ 123 {
28 FS 60 < 92 / 124 |
29 GS 61 = 93 ] 125 }
30 RS 62 > 94 ^ 126 `
31 US 63 ? 95 _ 127 DEL

你可能感兴趣的:(Java,基础)