1.对字符串数组进行排序
package javalianxi;
import java.util.Arrays;
import java.util.Comparator;
public class Test1 {
public static void main(String[] args) {
String[] array = { "cd", "CD", "bc", "AB", "ab", "bb", "BB", "dd", "tr", "fg", "aa" };
//使用默认方法A-Za-z
// Arrays.sort(array);
//自定义方法Aa-Zz
Arrays.sort(array, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
String s1 = o1.toUpperCase();
String s2 = o2.toUpperCase();
if(s1.equals(s2)) {
return o1.compareTo(o2);
}
return s1.compareTo(s2);
}
});
System.out.println(Arrays.toString(array));
}
}
2.如何对字符串的内容进行统计
package javalianxi;
public class Test2 {
public static void main(String[] args) {
String s = "我0a本1bB将2c心3d向4e明5f月";
int number = 0;
int english = 0;
for(int i = 0; i<s.length();i++) {
char c =s.charAt(i);
//判断是否是数子
if(c >= '0' && c<='9') {
number++;
}
//判断是否是字母
if(c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z') {
english++;
}
}
System.out.println(number);
System.out.println(english);
}
}
3.判断数字是否是回文数(回文数类似于12321,正着念反着念都是相同的)
package javalianxi;
public class Test3 {
public static void main(String[] args) {
//判断是否是回文数
int num = 9876789;
//将数值转换成字符串
String s = String.valueOf(num);
String number = "";
for(int i = 0; i<s.length();i++) {
//拿出每一个字符进行拼接
char c = s.charAt(i);
number = c + number;
}
System.out.println(s.equals(number));
}
}
4.当前日期是今年的第几天
- 先判断是否是闰年
- 再对二月进行修改
- 将日期相加
package javalianxi;
import java.time.LocalDate;
public class Test4 {
public static void main(String[] args) {
String date = "2024-09-28";
//截取出年月日
int year = Integer.parseInt(date.substring(0, 4));
int month = Integer.parseInt(date.substring(5, 7));
int day = Integer.parseInt(date.substring(8));
//方法一:使用LocalDate类
LocalDate dates = LocalDate.of(year, month, day);
int ret = dates.getDayOfYear();
System.out.println(ret);
//方法二
int[] arr = {31,28,31,30,31,30,31,31,30,31,30,31};
//判断二月
if(year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
arr[1]++;
}
//累加當前月
int days =0;
for(int i = 0;i<=month-2;i++) {
days +=arr[i];
}
days += day;
System.out.println(days);
}
}
5.String为什么是不可变的?
- 数据结构:使用final关键字修饰char[]类型的数组
- 方法实现:所有涉及修改的方法,均未在原数组中进行字符串内容修改,而是产生了一个新的字符串对象
6.输出所有的水仙花数
package demo;
public class Demo01 {
public static void main(String[] args) {
//输出所有的水仙花数
for(int i = 100;i<1000;i++) {
int hundred = i /100; //百位数
int ten = (i % 100) /10; //十位数
int one = i % 10;
if((hundred * hundred * hundred)+(ten * ten * ten)+(one * one * one) == i) {
System.out.println(i);
}
}
}
}
7.判断三角形是否成立
package javalianxi;
import java.math.BigInteger;
public class Test5 {
public static void main(String[] args) {
// int a =2,b=3,c=4;
//方法一
// int max = a>b?(a>c?a:c):(b>c?b:c);
// int min = Math.min(Math.min(a, b), c);
// int mid = a+b+c-max-min;
// String san = max<min+mid?"yes":"no";
// System.out.println(san);
//方法二
BigInteger a = new BigInteger("3");
BigInteger b = new BigInteger("4");
BigInteger c = new BigInteger("5");
BigInteger max = (a.compareTo(b)== 1)?(a.compareTo(c)==1?a:c):(b.compareTo(c)==1?b:c);
BigInteger min = (a.compareTo(b)== -1)?(a.compareTo(c)== -1?a:c):(b.compareTo(c)== -1?b:c);
BigInteger mid = a.add(b).add(c).subtract(max).subtract(min);
String san = max.compareTo(min.add(mid))== -1?"yes":"no";
System.out.println(san);
}
}