⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 converter.java~3~

📁 demo for java
💻 JAVA~3~
📖 第 1 页 / 共 3 页
字号:
      money_s = tmpArray[0];      money_t = tmpArray[1];      source = Integer.parseInt(tmpArray[2]);      object = Integer.parseInt(tmpArray[3]);      selected = Integer.parseInt(tmpArray[4]);      updateURL = tmpArray[5];      rs.closeRecordStore(); //关闭数据库对象    }    catch (RecordStoreException ex) { //捕捉到错误异常(第一次运行的时候数据库不存在)      dbInitialize(); //初始化数据库      startApp(); //重新开始程序    }  }  void saveDb() { //保存程序运行状态    renewVar(); //更新变量    try {      RecordStore rs = RecordStore.openRecordStore(dbName, true);      byte bytes[];      //字符串得转成Byte型再写入数据库      bytes = newArrayByte(defCurrencyName);      rs.setRecord(1, bytes, 0, bytes.length);      bytes = newArrayByte(defRate);      rs.setRecord(2, bytes, 0, bytes.length);      bytes = newArrayByte(defOperation);      rs.setRecord(3, bytes, 0, bytes.length);      rs.closeRecordStore();//       System.out.println("Database " + dbName + "Save Seucceed!");    }    catch (RecordStoreException e) {    }  }  //用于初始状态值  String defCurrencyName;  String defRate;  String defOperation;  void dbInitialize() { //初始化数据库    //初始状态值    defCurrencyName = "Pound,Dollar,RMB,ECU";    defRate = "1,1.81,15.02,1.497"        + "|0.55,1,8.27,0.825"        + "|0.067,0.12,1,0.1"        + "|0.668,1.21,10.035,1";    defOperation = "0,0,0,0,0,http://localhost/rate.asp";    try {      RecordStore.deleteRecordStore(dbName); //管它有没有数据库,删了再说    }    catch (RecordStoreException ex) {    }    try {      //删了再建一个新的,现在这里的参数用了true,也就是数据库不存在的话系统就会帮你建一个.      RecordStore rs = RecordStore.openRecordStore(dbName, true);      byte bytes[];      //将初始数据存进数据库      bytes = newArrayByte(defCurrencyName);      rs.addRecord(bytes, 0, bytes.length);      bytes = newArrayByte(defRate);      rs.addRecord(bytes, 0, bytes.length);      bytes = newArrayByte(defOperation);      rs.addRecord(bytes, 0, bytes.length);      rs.closeRecordStore();//        System.out.println("Database " + dbName + "Initialize Seucceed!");    }    catch (RecordStoreException ex) {    }  }  void renewVar() { //更新变量信息    defCurrencyName = "";    defRate = "";    defOperation = "";    for (int I = 0; I < CurrencyName.length; I++) { //更新货币单位      defCurrencyName += CurrencyName[I];      if (I < CurrencyName.length - 1) {        defCurrencyName += ",";      }    }    for (int I = 0; I < Rate.length; I++) { //更新汇率      for (int J = 0; J < Rate[I].length; J++) {        defRate += Rate[I][J];        if (J < Rate[I].length - 1) {          defRate += ",";        }      }      if (I < Rate.length - 1) {        defRate += "|";      }    }    //更新状态    defOperation += money_s + ",";    defOperation += money_t + ",";    defOperation += source + ",";    defOperation += object + ",";    defOperation += selected + ",";    defOperation += updateURL;  }  void StartUpdate() { //联网更新汇率    try {      //从指定网址读取汇率值      updateURL = input.getString();      HttpConnection hc = (HttpConnection) Connector.open(updateURL); //生成连接对像      DataInputStream dis = new DataInputStream(hc.openInputStream()); //获取输入流      String content = "";      int ic;      while ( (ic = dis.read()) != -1) { //读取一行        if (ic == 13) {          dis.read();          break;        }        content += (char) ic; //累加读取的字符      }      if (content.compareTo("RateData") == 0) { //如果第一行不是RateData则该页面不是有效的汇率数据        content = "";        while ( (ic = dis.read()) != -1) {          if (ic == 13) {            dis.read();            break;          }          content += (char) ic;        }        CurrencyName = newArray(content, ","); //更新货币单位        content = "";        while ( (ic = dis.read()) != -1) {          if (ic == 13) {            dis.read();            break;          }          content += (char) ic;        }        Rate = newArrayPlanar(content, "|", ","); //更新汇率        alert.setString("Update rate succeed!"); //提示更新成功        display.setCurrent(alert);      }      else {        alert.setString("Invalid URL or files!"); //提示无效的URL链接或无效的数据页        display.setCurrent(alert);      }    }    catch (Exception e) {      alert.setString("Connecting field!"); //提示联接失败      display.setCurrent(alert);    }  }  static String[] newArray(String Str, String sign) {    /*     以分隔符划分生成一维数组     其实就等于split函数,我当时翻的一本书叫<<Java2应用开发指南>>,里面介绍的String类     竟然找不到split这个函数,结果导致我错误的认为"Java居然不提供split",然后就傻傻     的自己写了一个同样功能的函数     这个错误还是今天整理这个程序的时候想起来查了一下SDK才发现的     不过还好这个功能并不复杂,自己写了也没花什么功夫,不过J2ME不支持浮点运算,这可写     死我了.     */    int point = 1;    int incept = 0;    int count = 0;    while (point > 0) {      point = Str.indexOf(sign, point);      point += 1;      incept = point;      count += 1;    }    String tmpArray[] = new String[count]; //确定数组大小    //复位初始位置    point = 1;    incept = 0;    int I = 0;    while (point > 0) {      point = Str.indexOf(sign, point);      point += 1;      if (point != 0) { //数组元素赋值        tmpArray[I] = Str.substring(incept, point - 1);      }      else {        tmpArray[I] = Str.substring(incept);      }      I++;      incept = point;    }    return tmpArray;  }  static String[][] newArrayPlanar(String Str, String firstSign,                                   String secondSign) {    //以分隔符划分生成二维数组    //这个Java好像没有吧,这回没白写    String firstArray[] = newArray(Str, firstSign);    String secondArray[] = newArray(firstArray[0], secondSign);    String tmpArray[][] = new String[firstArray.length][secondArray.length]; //确定数组大小    for (int I = 0; I < firstArray.length; I++) {      secondArray = newArray(firstArray[I], secondSign);      for (int J = 0; J < secondArray.length; J++) {        tmpArray[I][J] = secondArray[J]; //数组元素赋值      }    }    return tmpArray;  }  static String[] newArrayLength(String original[], int length) {    //用于动态改变数组大小    //如果增加一个功能,用户可以自己添加删除货币单位,就要用到    String tmpArray[] = new String[length];    System.arraycopy(original, 0, tmpArray, 0, original.length);    return tmpArray;  }  static byte[] newArrayByte(String string) { //字符串转Byte数组    byte tmpArray[] = string.getBytes();    return tmpArray;  }}class MyInput    extends Canvas { //自定义输入框的类  /*   系统自带组件TextField不能很好的处理小数点输入问题   大多数情况输入小数点需要切换到字符模式下   这样用户输入带小数点的数值会很不方便   所有需要自已定义一个这样的输入框类  */  public StringBuffer value = new StringBuffer(""); //存放输入的字符  int maxLength = 10; //最大输入字符数  int X, Y; //输入框的坐标  public MyInput(int x, int y) { //构造方法1    X = x;    Y = y;  }  public MyInput(int x, int y, String str) { //构造方法2    X = x;    Y = y;    input(str); //赋初值  }  public void paint(Graphics screen) {    screen.setColor(255, 255, 255); //设置前景色为白色    screen.fillRect(X, Y, getWidth() - 38, 12); //用白色填充指定区域    screen.setColor(0, 0, 0); //恢复前景色为黑色    screen.drawString(value.toString(), X + 2, Y - 2, 0); //将输入的字符串输出到指定位置  }  void input(String str) {    if (value.length() < maxLength) { //不超过最大字符数      value.append(str); //添加输入的字符    }  }  protected void keyReleased(int key) {    switch (key) { //输入按键输入      case 48:        input("0");        break;      case 49:        input("1");        break;      case 50:        input("2");        break;      case 51:        input("3");        break;      case 52:        input("4");        break;      case 53:        input("5");        break;      case 54:        input("6");        break;      case 55:        input("7");        break;      case 56:        input("8");        break;      case 57:        input("9");        break;      case 35: //处理负号输入        if (value.toString().indexOf("-") < 0) {          value.insert(0, "-");        }        else {          value.delete(0, 1);        }        break;      case 42: //处理小数点输入        if (value.toString().indexOf(".") < 0 && value.length() > 0) {          if ( (value.toString().indexOf("-") < 0 && value.length() >= 1) ||              (value.toString().indexOf("-") == 0 && value.length() >= 2)) {            input(".");          }        }        break;      case -8: //退格清除        if (value.length() > 0) {          value.delete(value.length() - 1, value.length());        }        break;    }    repaint();  }}class Math {//+-*/这4个方法让我好是研究了一阵子,但我还是觉得方法笨了点//这个程序只用到了*/法public static String Add(String X, String Y) {  //浮点数加法运算  //处理步骤:  //	1.将浮点数的整数部分和小数部分分离出来  //	2.让小数位同位  //	3.整数部分运算  //	4.小数部分运算  //	5.处理小数位进位  //	6.返回运算结果。  long Xi, Xf; //X的整数部分Xi,X的小数部分Xf  long Yi, Yf; //X的整数部分Yi,X的小数部分Yf  long Ri, Rf; //Ri存放整数部分的运算结果,Rf存放小数部分的运算结果  int Xp, Yp; //Xp,Yp用于处理小数位长度  String a, b; //两个临时变量,用于处理小数位运算后进位,a为运算后的进位部分,b为运算后的小数部分  String tmp; //临时变量  Xi = Long.parseLong(getInt(X)); //X的整数部分  Xf = Long.parseLong(getFloat(X)); //X的小数部分  Xp = getFloat(X).length(); //X小数部分的位数

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -