用字符串格式化时为什么不删除括号?

时间:2013-11-01 12:05:46

标签: android

如何删除sstirng周围的括号?当运行数据库查询其显示括号值时,我从数据库中保存数据库值,我该怎么做? 我想删除stirng [AT]周围的括号怎么做?

static ArrayList<String> Meal_groupid = new ArrayList<String>();

String formatedString = "[AT]"
    .replace("[", "")   //remove the right bracket
    .replace("]", "");

Log.i("Formating Stirng",""+formatedString);

Meal_groupid.add(mCursor2.getString(mCursor2.getColumnIndex("meal_group_id"))
        .replace("[", "").replace("]", ""));

Log.i("MEalGroup ID",""+Meal_groupid);

在logcat中看到

  

in logcat Formating Stirng AT

     

MEalGroup ID [AT]

当我运行查询

Cursor mCursor =  db.selectQuery("
    SELECT m.menu_id, m.title AS menu_title
    FROM uss_school_to_menu sm
    LEFT JOIN uss_menu m on sm.menu_id = m.menu_id
    LEFT JOIN uss_school s on s.school_id = sm.school_id
    WHERE s.school_id = '"+ School_ID+"' AND sm.level_id = " +
    SchoolLevelId + " AND m.meal_group_code = '"+Meal_groupid.toString()+"'" );
数据库中的

看起来像这样

SELECT m.menu_id, m.title AS menu_title
FROM uss_school_to_menu sm
LEFT JOIN uss_menu m on sm.menu_id = m.menu_id
LEFT JOIN uss_school s on s.school_id = sm.school_id
WHERE s.school_id = '147' AND sm.level_id = 1 AND m.meal_group_code = '[AT]'

我想删除[AT]

周围的括号

1 个答案:

答案 0 :(得分:0)

您正在toString()上调用ArrayList<String>来获取字符串,但这不起作用。如果您在toString()上致电ArrayList<T>,则通常会获得

的输出
"[" + get(0).toString() + " " + get(1).toString() + " " + get(2).toString() + etc + "]"

您只有一个元素,因此最终看起来像是在字符串周围添加了括号。

你真的需要一个数组列表吗?如果是,则需要将Meal_groupid.toString()替换为Meal_groupid.get(0),除了0应该替换为所需列表中的任何字符串的索引。

如果一次只需要一个字符串,那么请完全避免使用数组列表,这样就可以直接将字符串插入数据库查询中。

您不需要.replace("[", "").replace("]", ""),因为实际字符串周围没有括号。