J2ME游戏中读入文本并存储在String数组中

数组

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

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

[源代码]
以下内容为程序代码
/* 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;
}

[总结]
程序要求很简单,一定有更好的办法来实现,结果参阅了大量资料,一无所获.

时间: 2024-11-26 16:38:49

J2ME游戏中读入文本并存储在String数组中的相关文章

动态数组,数组初始化,数组内存释放,向数组中添加一个元素,向数组中添加多个元素,数组打印,顺序查找,二分查找,查找数组并返回地址,冒泡排序,改变数组中某个元素的值,删除一个数值,删除所有,查找含有

 1定义接口: Num.h #ifndef_NUM_H_ #define_NUM_H_   #include<stdio.h> #include<stdlib.h>   /************************************************************************/ /*数组的结构体类型                                                    */ /***************

javascript中判断一个值是否在数组中并没有直接使用_基础知识

在JS中要判断一个值是否在数组中并没有函数直接使用,如PHP中就有in_array()这个函数.但我们可以写一个类似in_array()函数来判断是一个值否在函数中 例1 复制代码 代码如下: /* * * 判断在数组中是否含有给定的一个变量值 * 参数: * needle:需要查询的值 * haystack:被查询的数组 * 在haystack中查询needle是否存在,如果找到返回true,否则返回false. * 此函数只能对字符和数字有效 * */ function findnum(){

java 如何从txt文档中读取内容到string[]数组中

问题描述 txt读取每一行文字存为一个stringVector<String>result=null;publicdelStopWord(){Stringline=null;try{BufferedReaderreader=newBufferedReader(newFileReader("data\stopList.txt"));while((line=reader.readLine())!=null){result.add(line);}}catch(IOExceptio

在javascript中,如果删除二维数组中重复的元素_javascript技巧

了很久,始终没想出解决方案,大伙给点思路吧.  [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

C# 移除数组中重复数据

#region 移除数组中重复数据 /// <summary> /// 移除数组中重复数据 /// </summary> /// <param name="array">需要除重的数组</param> /// <returns>不重复数组</returns> public static string[] DelRepeatData(string[] array) { return array.GroupBy(p =

string-从字符串数组中充填spinner

问题描述 从字符串数组中充填spinner 如何从字符串数组中充填spinner?我知道在array.xml中可以这样实现: ArrayAdapter<CharSequence> gameKindArray = ArrayAdapter.createFromResource(view.getContext()R.array.game_kind android.R.layout.simple_spinner_item); gameKindArray.setDropDownViewResource

如何数据库中数据存到数组中

问题描述 请问如何把数据库中的数据存到数组中,试了几种方法总是出错,希望能看一下demo片段 解决方案 1.你把从数据库中获取的list做个for循环,在循环的过程中,每次循环将list中一条数据插入到数组中2.可以使用追加的方式进行:List arr =new ArrayList();for(int i=0;i<list.size;i++){ arr.add(list.get(i));}办法有很多种的,看个人喜好了解决方案二:我给一个.net的代码吧!!分两种情况回答吧!!一如果你查询的记录中

ruby 怎么利用正则表达式在把一个字符串数组中的数字放到一个数组中?

问题描述 ruby 怎么利用正则表达式在把一个字符串数组中的数字放到一个数组中?str='100good200bad300ok'问题补充:说错了是把一个字符串中的所有数字放到一个数组中:)问题补充:是 100 200 300不过还是谢谢sunfjun 解决方案 str='100good200bad300ok' str.scan(/d+/)解决方案二:String的这个scan方法真不错, shaquan6776解决方案三:'100good200bad300ok'.split(/[^d]/).re

JS中取二维数组中最大值的方法汇总_javascript技巧

在JavaScript中可以通过内置的 Math.max() 的最大值,但是要从多重数组中取出最大值,还是有一定的难度. 问题描述 假设你有一个数组,而且这个数组中包含了数字的子数组,而我们要做的是从数组中的每个子数组中返回其最大的那个最大数. 基本解决方案 function largestOfFour(arr) { var results = []; // 创建一个results变量来存储 // 创建一个外层循环,遍历外层数组 for (var n = 0; n < arr.length; n