【Java-简单练习题】

1."AABBBCCC">>"A2B3C3"

java 复制代码
public class Test6 {
	public static void main(String[] args) {
		String ns = "AABBBCCCC";
		String ret=compress(ns);
		System.out.println(ret);
	}
	
public static String compress(String str) {
	StringBuilder ret = new StringBuilder();
	int count = 1;
	// 遍历至倒数第二个
	for (int i = 0; i < str.length()-1; i++) {
		if (str.charAt(i) == str.charAt(i + 1)) {
			count++;
		} else {
			ret.append(str.charAt(i)+""+count);
			count=1;
		}
	}
	//处理最后一个字符
	ret.append(str.charAt(str.length()-1)+""+count);
	return ret.toString();
}
}
  1. 图书ISBN验证码
java 复制代码
package ti;
import java.util.Scanner;
public class Test02 {
	 public static void main(String[] args) {
	        Scanner scan = new Scanner(System.in);
	        //在此输入您的代码...
	        //输入ISBN
	        String isbn=scan.next();
	        //去除分隔符
	        String isbn1=isbn.replace("-","");
	        //累加
	        int sum=0;
	        for(int i=0,k=1;i<isbn1.length()-1;i++,k++){
	            int na=Integer.parseInt(String.valueOf(isbn1.charAt(i)));
	            sum=sum+na*k;
	        }
	        //计算校验码
	        String code=String.valueOf(sum%11==10?"X":sum%11);
	        //判断
	        String isbncode=String.valueOf(isbn.charAt(isbn.length()-1));
	        if(code.equals(isbncode)){
	          System.out.println("Right");
	        }else{
	        	 System.out.println(isbn.substring(0,isbn.length()-1)+code);
	        }
	        scan.close();
	    }}
  1. 统计字母数字中文符号的个数
java 复制代码
public static void main(String[] args) {
		String str = "OMG,你们的中英混搭真是各有千秋,666但Someone丝毫掩盖不了你们那硬朗的英语底子!For eg.papi酱真的very有才华啊";
		HashMap<String, Integer> map = new HashMap<String, Integer>();
		map.put("letters", 0);
		//map.put("numbers", 0);
		map.put("chinese", 0);
		map.put("flags", 0);
		// 遍历字符串
		for (int i = 0; i < str.length(); i++) {
			char c = str.charAt(i);
			if (c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z') {
				int oldValue = map.get("letters");
				int newValue = oldValue + 1;
				map.put("letters", newValue);
			}if(c >= '0' && c <= '9') {
				map.put("numbers", map.getOrDefault("numbers",0)+1);
			}if(c >= 0x4e00 && c <= 0x29fa5) {
				map.put("chinese", map.get("chinese")+1);
			}else {
				map.put("flags", map.get("flags")+1);
			}
		}
		System.out.println(map);
	}
  1. 幸运数字
java 复制代码
package learn01;

import java.math.BigInteger;

public class Test02 {
	public static void main(String[] args) {
		int i = 1, counter = 0;
		while (true) {
			String bin = Integer.toBinaryString(i);
			String oct = Integer.toOctalString(i);
			String dec = String.valueOf(i);
			String hex = Integer.toHexString(i);

			int binsum = sum(bin, 2);
			int octsum = sum(oct, 8);
			int decsum = sum(dec, 10);
			int hexsum = sum(hex, 16);

			if (i % binsum == 0 && i % octsum == 0 && i % decsum == 0 && i % hexsum == 0) {
				System.out.println(i);
				counter++;
			}
			if(counter>=2023) {
				break;
			}
			i++;
		}
	}
	
	private static int sum(String number,int radix) {
		BigInteger ret=new BigInteger("0",radix);
		
		for(int i=0;i<number.length();i++) {
			BigInteger bn=new BigInteger(number.substring(i,i+1),radix);
			ret=ret.add(bn);
		}
		return ret.intValue();
	}
}
相关推荐
娅娅梨2 分钟前
C++ 错题本--not found for architecture x86_64 问题
开发语言·c++
汤米粥8 分钟前
小皮PHP连接数据库提示could not find driver
开发语言·php
冰淇淋烤布蕾11 分钟前
EasyExcel使用
java·开发语言·excel
拾荒的小海螺17 分钟前
JAVA:探索 EasyExcel 的技术指南
java·开发语言
秀儿还能再秀31 分钟前
机器学习——简单线性回归、逻辑回归
笔记·python·学习·机器学习
Jakarta EE33 分钟前
正确使用primefaces的process和update
java·primefaces·jakarta ee
马剑威(威哥爱编程)42 分钟前
哇喔!20种单例模式的实现与变异总结
java·开发语言·单例模式
白-胖-子1 小时前
【蓝桥等考C++真题】蓝桥杯等级考试C++组第13级L13真题原题(含答案)-统计数字
开发语言·c++·算法·蓝桥杯·等考·13级
好睡凯1 小时前
c++写一个死锁并且自己解锁
开发语言·c++·算法
java—大象1 小时前
基于java+springboot+layui的流浪动物交流信息平台设计实现
java·开发语言·spring boot·layui·课程设计