Java

本类阅读TOP10

·使用MyEclipse开发Struts框架的Hello World!(录像1)
·hibernate配置笔记
·AOP编程入门--Java篇
·linux下Tomcat 5.0.20 与 Apache 2 安装/集成/配置
·在win2003下整合了整合Tomcat5.5+ apache_2.0.53+ mod_jk_2.0.47.dll
·构建Linux下IDE环境--Eclipse篇
·Jsp 连接 mySQL、Oracle 数据库备忘(Windows平台)
·ASP、JSP、PHP 三种技术比较
·Tomcat5.5.9的安装配置
·AWT GUI 设计笔记(二)

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
J2ME游戏中读入文本并存储在String数组中

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

一个在J2SE中十分钟即告完成的代码,在J2ME中花费了一个下午.是什么样的代码呢?
[要求]在游戏中读入文本形式存储的hints

[分析]
J2ME没有BufferReader,用InputStreamReader吧
既然没有BufferReader,也就不要奢望有readLine()了,自己慢慢循环吧

[源代码]
[code]
/* read hint-------------------------------------- */
 /**
  * This is the hints
  * */
 String[][] hintStr;

 /**
  * this specify the hint's show width
  */
 final int hint_width = 8;
 
 int hint_num;

 public boolean readHint(int stage) {

  if (stage > 0 && stage < 4) {
   if (stage == 2) {
    hint_num = 4;
   } else {
    hint_num = 3;
   }
  } else {
   System.out.println("No this stage");
   return false;
  }

  try {
   
   String filename = "hint" + Integer.toString(stage);
   InputStreamReader in = new InputStreamReader(getClass()
     .getResourceAsStream(filename));
   int num = -1;
   do {
    ++num;
   } while (in.read() != -1);
   in.reset();
   char[] hintsdat = new char[num];
   System.out.println(num);
   in.read(hintsdat);
   in.close();

   String hint_temp = new String(hintsdat);

   int j = 0;
   int i = 0;
   String hint_num_temp[] = new String[hint_num];
   for (int x = 0; x < hint_num; x++)
    hint_num_temp[x] = "";
   while (true) {

    if (i < hintsdat.length) {
     if (hintsdat[i] != '\n') {
      hint_num_temp[j] += hintsdat[i];
      i++;
      continue;
     } else if (j < hint_num) {
      System.out.println(i);
      i++;
      j++;
     }
     continue;
    }

    break;
   }

   // System.out.println("Creating....");

   j = 0;
   for (i = 0; i < hint_num; i++) {
    String str = new String(hint_num_temp[i]);
    int str_num = str.length() / hint_width + 1;
    hintStr = new String[num][str_num];
    for (int z = 0; z < str_num; z++) {
     if (z < str_num - 1) {
      hintStr[j][z] = "";
      hintStr[j][z] += str.substring(z * hint_width, (z + 1)
        * hint_width);
     } else {
      hintStr[j][z] = "";
      hintStr[j][z] += str.substring((z - 1) * hint_width);
     }
     System.out.println("hintStr[" + j + "][" + z + "]:"
       + hintStr[j][z]);
    }
    j++;
   }

  } catch (IOException e) {
   System.out.println("Error");
  }
  return true;
 }
[/code]
[总结]
程序要求很简单,一定有更好的办法来实现,结果参阅了大量资料,一无所获.




相关文章

相关软件