【发布时间】:2018-10-24 17:32:59
【问题描述】:
我在这里遵循了 Ajb 的建议 Splitting String using RegEx in Android 并这样做了:
@SuppressWarnings("JavaDoc")
public class DBUtility extends SQLiteOpenHelper {
private static final String DB_NAME = "Angler.sqlite3";
private static final int DB_VERSION = 1; //minimal 1, 0 nicht zulässig.
private String DB_PATH_COMPLETE;
private String DB_PATH;
private String DB_PATH_DISPLAY;
private SQLiteDatabase SQL_DB;
private Context myContext;
private String displayText;
private BufferedReader Rdr;
private char[] SQLstringAr;
private String SQLstatementFile;
private Cursor cur;
/**
* Constructor
* Takes and keeps a reference of the passed context in order to access to the application assets and resources.
* @param context
*/
public DBUtility(Context context) {
// Kann nicht private werden
super(context, DB_NAME, null, DB_VERSION); //3. Parameter Wert null ist die CursorFactory
myContext = context;
DB_PATH = myContext.getDatabasePath(DB_NAME).getPath();
String RegEx = "((/data/data/(w+\\.w+/w+/w+/))w+\\.w+)"; // /data/data/wolfgang_jakobi.anglerapp/databases/Angler.sqlite3
Pattern p = Pattern.compile(RegEx);
Matcher m = p.matcher(DB_PATH);
String [] Groups = new String[3];
if (m.find()) {
Groups[0] = m.group(1); // /data/data/wolfgang_jakobi.anglerapp/databases/Angler.sqlite3
Groups[1] = m.group(2); // /data/data/wolfgang_jakobi.anglerapp/databases/
Groups[2] = m.group(4); // wolfgang_jakobi.anglerapp/databases/
}
DB_PATH_COMPLETE = Groups[0];
DB_PATH = Groups[1];
DB_PATH_DISPLAY = Groups[2];
SQL_DB = super.getReadableDatabase();
}
唉,条件 m.find() 不成立,所以代码在条件括号之后继续,我的所有组都保持为空,我不知道为什么。
感谢您的推荐。
沃尔夫冈
【问题讨论】: