1、数字转化汉字
import java.util.Scanner;
public class Hello {
//W,J,X分别为汉字数字与进制以及小数点后进制
private static String[ ] W= {"零","壹","貳","叁","肆","伍","陆","柒","捌","玖","拾"};
private static String[ ] J= {"拾","佰","仟","万"};
private static String[ ] X= {"角","分"};
//divide实现了将输入数字分为小数点前后两个字符串
private String[ ] divide(double num){
long Qian=(long)num;
String cc=String.valueOf(num);
String Hou=cc.split("\\.")[1];
String[ ] a=new String[ ] {String.valueOf(Qian),Hou};
return a;
}
private void complete(String digital0,String digital1) {
//初始化语句
String result="";
//k为从后往前数作为位数的指针
int k=-1;
//从个位开始向前遍历数字
for (int i=digital0.length()-1;i>=0;i--){
//个位比较独特
int j=digital0.length()-1;
//字符串数字转化成数字
int num=digital0.charAt(i)-48;
if (k==7){ //当数字长度是8位以上
result=W[num]+"亿"+result;
k++;
continue;
}
if (i!=j&&num==0&&digital0.charAt(i+1)==48) { //去除重复零当输入的数字中第i位不是最高位,且i位为0,且第(i+1)位是0
if(J[k%4]=="万") {//亿以下万要保留
result=J[k%4]+result;
k++;
continue;
}
k++;
continue;
}
if(i==j&&num==0) { //当个位为零时
k++;
continue;
}
if(i!=j&&num!=0){ //当遍历中的i不是最高位,且第i位不为0时
result=W[num]+J[k%4]+result;
}
else{
result=W[num]+result;
}
k++;
}
result=result+"圆";
for(int i=0;i<=digital1.length()-1;i++){
// if(digital1.length()==1) { //当数字为个位数字时
// break;
// }
result+=W[digital1.charAt(i)-48]+X[i];
}
if(result.charAt(result.indexOf("亿")+1)=='万') {//亿以上亿万相靠去除万
result=result.substring(0, result.indexOf("亿")+1)+result.substring(result.indexOf("亿")+2);
}
System.out.print(result);
}
public static void main(String[] args) {
//新建对象
Hello nr =new Hello();
//键入数字
Scanner scanner = new Scanner(System.in);
Double digital=scanner.nextDouble();
//digital0为小数点前数字字符串
String digital0=nr.divide(digital)[0];
//digital1为小数点后数字字符串
String digital1=nr.divide(digital)[1];
//数字转换汉字
nr.complete(digital0,digital1);
}
}
2、乘法表
import java.util.Scanner;
public class Hello {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
System.out.println("please input number");
int nb=scanner.nextInt();
for(int i = 1;i <= nb;i++) {
for(int j = 1;j <= i;j++) {
System.out.print(i+"x"+j+"="+i*j+" ");
}
System.out.print("\n");
}
}
}
3、等腰三角形
import java.util.Scanner;
public class Hello {
public static void main(String[] args) {
System.out.println("please input line number");
Scanner scanner=new Scanner(System.in);
int nb=scanner.nextInt();
for(int i = 0;i <= nb;i++) {
for(int j = nb-i;j >0;j--) {
System.out.print(" ");
}
for(int j = 2*i+1;j>0;j--) {
System.out.print("*");
}
System.out.print("\n");
}
}
}
4、区别substring按字节截取字符串
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.util.Scanner;
public class Hello {
//字符串按字节截取
void subb(String input,int begin,int end) throws UnsupportedEncodingException {
//将字符串按字节解码
byte[] c = input.getBytes("Unicode");
//wei进行字节的计数
int wei = 0;
//q作为开始的字符指针,目的找到begin的字符与结束
int q = 0;
//s作为开始的保留存储
int s=0;
for(int i = 2 ;i < c.length;i+=2) {
if(begin>=wei) {
s=q;
}
if(c[i]!=0) {
wei++;
}
wei++;
if(end<=wei) {
for(int p = s;p<q;p++) {
System.out.print(input.charAt(p));
}
break;
}
q++;
}
}
public static void main(String[] args) throws IOException {
Hello h = new Hello();
//输入字符串
BufferedReader scan= new BufferedReader(new InputStreamReader(System.in));
String a=scan.readLine();
//输入字符的范围
System.out.print("please input the range of number:");
Scanner scanner= new Scanner(System.in);
int d=scanner.nextInt();
int e=scanner.nextInt();
h.subb(a, d-1, e+1);
}
}
5、身份证验证器
import java.util.Scanner;
public class sfz {
public static void main(String[] args) {
int[] w= {7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1};
System.out.println("请输入身份证号码,末尾为X则改为10:");
Scanner scanner = new Scanner(System.in);
long sfz = scanner.nextLong();
int sum = 0;
long temp = 0;
long[] a = new long[18];
if((sfz/1000000000)/1000000000<=0) {
temp=sfz%10;
sfz=sfz/10;
a[17]=temp;
}
else {
sfz=sfz/100;
a[17]=10;
}
for(int j =16;j>=0;j--) {
temp=sfz%10;
sfz=sfz/10;
a[j]=temp;
}
for(int i = 0;i<18;i++) {
sum+=a[i]*w[i];
}
if(sum%11==1) {
System.out.println("身份证号码正确");
}
else {
System.out.println("身份证号码错误");
}
try
{
Thread.sleep(5000);
}
catch (InterruptedException e)
{
e.printStackTrace();
}
}
}