第一次编程作业

package com.huateng.cpes.unit;

import java.math.BigDecimal;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Scanner;

import org.apache.axis2.databinding.types.xsd.Integer;
import org.apache.commons.validator.Form;

import com.huateng.billSys.util.DateUtil;
import com.huateng.cpes.DateUtils;
import com.huateng.ebank.business.management.service.SopService;
import com.huateng.ebank.entity.data.mng.ResellDetails;
import com.lenovo.ebank.pub.SopIntf;

import batchUitls.BatchUtils;
import batchUitls.IdentityBatch;
import batchUitls.InsertHelper;
import batchUtils.exception.BatchException;

public class Test2 {

/**
 * @param args
 */

public static void main(String[] args) {
    String zhengShu ="整数";
    String zengJia = "增加";
    String jianShao = "减少";
    String kanKan = "看看";
    String dengYu = "等于";
    String[] bianLiang = new String[10] ;//可能存在多个变量定义 所以用数组
    String[] zhi = new String[10] ;//可能存在多个变量定义 所以用数组
    StringBuilder stringbuilder = new StringBuilder();
    System.out.println("注意:另起一行后‘空格+回车’结束 (数字只会出现:零一二三四五六七八九十 )\n 请输入中文代码:");
    Scanner scanner = new Scanner(System.in);
    while(true)
    {
        String text = scanner.nextLine().trim();
        if ("".equals(text))//判断空格退出
        {
            break;
        }
        stringbuilder.append("|"+text);//增加分隔符
    }
    String[] split = stringbuilder.toString().split("\\|");
    for( int i=1 ; i < split.length ; i++) {
        String str = split[i];
        String[] splits = str.split(" ");
        if(zhengShu.equals(splits[0])&&dengYu.equals(splits[2])) {//判断
            bianLiang[i-1] = splits[1];
            zhi[i-1] = splits[3];
        }
        if(kanKan.equals(splits[0])&&splits.length == 2) {
            for(int j=0 ; j < bianLiang.length ; j++) {
                if(bianLiang[j].equals(splits[1])) {
                    System.out.println(zhi[j]);
                    break;
                }
            }
        }
        if(zengJia.equals(splits[1])||jianShao.equals(splits[1])) {
            for(int n = 0 ; n < bianLiang.length ; n++ ) {
                if(bianLiang[n].equals(splits[0])) {
                    int value = getInt(splits[2].toString());
                    int valueZhi = getInt(zhi[n]);
                    if(zengJia.equals(splits[1])) {
                        valueZhi = valueZhi + value;
                    }else {
                        valueZhi = valueZhi - value;
                    }
                    zhi[n] = getStr(valueZhi);
                    break;
                }
            }
        }
    }
}

public static int getInt(String zhi) {
    int value = 0;
    switch (zhi) {
    case "零":
        value = 0;
        break;
    case "一":
        value = 1;
        break;
    case "二":
        value = 2;
        break;
    case "三":
        value = 3;
        break;
    case "四":
        value = 4;
        break;
    case "五":
        value = 5;
        break;
    case "六":
        value = 6;
        break;
    case "七":
        value = 7;
        break;
    case "八":
        value = 8;
        break;
    case "九":
        value = 9;
        break;
    case "十":
        value = 10;
        break;
    default:
        System.out.println("值过大!");
        break;
    }
    return value;
}

public static String getStr(int zhi) {
    String value = "";
    switch (zhi) {
    case 0:
        value = "零";
        break;
    case 1:
        value = "一";
        break;
    case 2:
        value = "二";
        break;
    case 3:
        value = "三";
        break;
    case 4:
        value = "四";
        break;
    case 5:
        value = "五";
        break;
    case 6:
        value = "六";
        break;
    case 7:
        value = "七";
        break;
    case 8:
        value = "八";
        break;
    case 9:
        value = "九";
        break;
    case 10:
        value = "十";
        break;
    default:
        value = "值过大!";
        break;
    }
    return value;
}

}

1.思路一_输入: 需要先实现控制台多行输入 正常Scanner识别回车结束,增加死循环并判断特殊字符退出 可实现多行录入。
2.思路二_字符串处理: 获取到一整个字符串,需要区分中文命令的整体性,简单的设计成每行为一个完整命令 用特殊符号分割,并用split获取。拿到每个命令后都是单独的字符串 每个命令之间用空格分割 再次用split分割成一个命令的几部分 ,这样一整个大字符串就分割成了单独的一个个命令变量等等,用String[]保存
3.思路三_命令判断: 因为是多行命令,一次执行需要多次判断 ,所以需要外层一个循环来多次判断并执行中文命令
4.思路四_模块划分:模块一 输入
模块二 字符串处理
模块三 命令的判断以及执行
模块四 零-十和0-10的转换
5.思路五_核心: 整个程序的核心是String[]的运用,正确定义好对应的String[],利用多个String[] 讲变量和变量对应的值分别赋值,并用同一个n来代表。比如变量bianliang[1]的值就是zhi[1], 变量bianliang[n]的值就是zhi[n],在赋值的时候定义好后期的处理就很简单了

你可能感兴趣的:(第一次编程作业)