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("注意:另起一行后‘空格+回车’结束 (数字只会出现:零一二三四五六七八九十 )
请输入中文代码:");
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],在赋值的时候定义好后期的处理就很简单了