Java基础String常见的编程练习

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);
	}
}

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值