android sqlite循环读取和插入

时间:2011-03-23 17:19:43

标签: android sqlite

addressString = 
"BOOKNO= [1] 
From= [ 2011-02-28 07:00:52] 
To= [2011-03-17 07:01:02]
Link= [http://www.example.com]
SINCE= [5] days.
BOOKNO= [2] 
From= [ 2011-03-01 17:55:15] 
To= [2011-03-30 17:55:21]
Link= [http://www.something.com]
SINCE= [3] days."

我在从字符串addressString读取此信息并将其插入到sqlite表格中时遇到问题所以这是我想要读取的信息我应该只提取括号之间的文本,以便表格应该看起来像这样

BOOKNO, FROM, TO, LINK, SINCE

那些是我需要插入到我的表中的五列所以我使用indexof()来提取括号之间的什么 我的第一行应该只包含

1,2011-02-28 07:00:52,2011-03-17 07:01:02,http://www.example.com,5

第二行

2,011-03-01 17:55:15,2011-03-30 17:55:21,http://www.something.com,3

我需要插入前5列并再次循环以插入下一个addressString包含所有上述信息并将其作为一个字符串读取 这是我用来读它的代码

db.open();
        长idx;

    String lines[] = {addressString};
    String fields[] = new String[lines.length];
    for (int i = 0; i < lines.length; i++) {

        for (int j=0; j<5; j++){
        int be = lines[i].indexOf('[');
        int e = lines[i].indexOf(']');
        fields[i] = lines[i].substring(be+1, e);
    }
        idx = db.insertTitle(fields[0],fields[1],fields[2],fields[3],fields[4]);
        }

所以我在这段代码中做错了什么以及如何使它工作..... ??

嗨再一次,我一直在玩我的代码,当我尝试用这段代码在屏幕上显示输出时我在屏幕上只得到1号,它不会读取所有文本 这是在地址字符串

if (addressString != "didn't read titels"){
        String lines[] = {addressString};
        String fields[] = new String[lines.length];     
for (int i = 0; i < lines.length; i++) {
                int be = lines[i].indexOf('[');
                int e = lines[i].indexOf(']');
                fields[i] = lines[i].substring(be+1, e);
                myLoutputText.setText(fields[i]);
    }

所以...为什么只读取并显示第一行是[1]

2 个答案:

答案 0 :(得分:0)

你正在调用db.insertTitle,你的意思是使用db.insert吗?

答案 1 :(得分:0)

检查lines.length的值。看起来它正在返回1.