Java使用字符模拟5段显示器(火柴棍)的数字

问题:

question

 

import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;

public class MatchNumberGenerator {
	public static int[] matchNumberGenerator(int a){
		int result[] = null;
		switch(a){
		//"_"-->2 " "-->0 "|"-->1
		case 0:
			result = new int[]{0,2,0,1,0,1,1,0,1,1,0,1,1,2,1};
			//"' _ '| |'| |'| |'|_|".split(",");
			break;
		case 1:
			result = new int[]{0,0,0,0,0,1,0,0,1,0,0,1,0,0,1};
			//"'   '  |'  |'  |'  |".split(",");
			break;
		case 2:
			result = new int[]{0,2,0,0,0,1,0,2,1,1,0,0,1,2,0};
			//"' _ '  |' _|'|  '|_ ".split(",");
			break;
		case 3:
			result = new int[]{0,2,0,0,0,1,0,2,1,0,0,1,0,2,1};
			//"' _ '  |' _|'  |' _|".split(",");
			break;
		case 4:
			result = new int[]{0,0,0,1,0,1,1,2,1,0,0,1,0,0,1};
			//"'   '| |'|_|'  |'  |".split(",");
			break;
		case 5:
			result = new int[]{0,2,0,1,0,0,1,2,0,0,0,1,0,2,1};
			//"' _ '|  '|_ '  |' _|".split(",");
			break;
		case 6:
			result = new int[]{0,2,0,1,0,0,1,2,0,1,0,1,1,2,1};
			//"' _ '|  '|_ '| |'|_|".split(",");
			break;
		case 7:
			result = new int[]{0,2,0,0,0,1,0,0,1,0,0,1,0,0,1};
			//"' _ '  |'  |'  |'  |".split(",");
			break;
		case 8:
			result = new int[]{0,2,0,1,0,1,1,2,1,1,0,1,1,2,1};
			//"' _ '| |'|_|'| |'|_|".split(",");
			break;
		case 9:
			result = new int[]{0,2,0,1,0,1,1,2,1,0,0,1,0,2,1};
			//"' _ '| |'|_|'  |' _|".split(",");
			break;
		}
		return result;
	}

	public static void printNumber(int[] numberArray, int arrayIndex, int arrayIndexEnd){
		for(int i = arrayIndex; i < arrayIndexEnd;i++){
			//System.out.print(numberArray[i]);
			switch(numberArray[i]){
			//"_"-->2 " "-->0 "|"-->1
			case 0:
				System.out.print(" ");
				break;
			case 1:
				System.out.print("|");
				break;
			case 2:
				System.out.print("_");
				break;
			}
		}
		System.out.print(" ");
	}
	
	public static boolean isNumber(String args) {
		  
		  return args.matches("-?\\d+\\.?\\d*");
		    
		 }
	public static void main(String[] args) {
		System.out.println("Please enter the number:");
		Scanner sc = new Scanner(System.in);
		String[] inputString = sc.nextLine().split("");
		//System.out.println(inputString);
		List<int[]> inputIntList = new LinkedList<int[]>();
		for(String temp: inputString){
			if(isNumber(temp))
				inputIntList.add(matchNumberGenerator(Integer.parseInt(temp)));
		}
		//System.out.println(inputIntList);
		Iterator<int[]> iterator = null;
		for(int i = 0; i < 5; i++){
			iterator = inputIntList.iterator();
			while(iterator.hasNext()){
				printNumber(iterator.next(),i*3,(i+1)*3);
			}
			System.out.println();
		}

	}

}
 

输出

输出

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值