好的,所以我查看了this(询问如何分割字符串的问题),但答案与我的问题无关。
用户将输入存储在sqlite数据库中的权重,但我也希望该数字显示在刚刚输入的TextView下方(因为应用程序会在7天的时间内跟踪权重)。
当我尝试从我的数据库中获取字符串时,它存储为一个长字符串,而我想要做的就是拆分字符串(我希望我有意义!)。
我有以下方法;
public String[] getWeight() {
String selectQuery = "SELECT " + DowncroftContract.WEIGHT_VALUE + " FROM " + DowncroftDatabase.WEIGHT_TABLE; //+ " WHERE " + DowncroftContract.WEIGHT_DOGS_ID + " = " + str_dogsId + " ORDER BY " + DowncroftContract.WEIGHT_DATE + " ASC;";
SQLiteDatabase db = downcroftDatabase.getReadableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);
String[] data = null;
if (cursor.moveToFirst()) {
do {
results = cursor.getString(cursor.getColumnIndex(DowncroftContract.WEIGHT_VALUE + ""));
String[] splitString = results.split("");
String split1 = splitString[1];
String split2 = splitString[2];
DayOne.append(split1);
DayTwo.append(split2);
} while (cursor.moveToNext());
}
cursor.close();
return data;
}
现在上面的方法会将字符串拆分为单个数字,但我似乎无法弄清楚如何拆分字符串以便将其拆分为每两个数字。
E.G用户输入20个输入 - 然后输入一个名为DayOne的TextView。
第二天,用户输入24并按Enter键,然后进入名为DayTwo的TextView。
我想我需要一个可能有for循环的数组但是我想知道是否有可能通过调整我已经拥有的东西来实现我想要的东西?
答案 0 :(得分:1)
您只是想要每2个字符拆分一个字符串?
就像你有字符串123456
,你想要12
,34
,56
?
试试这个:
String[] split = result.split("(?<=\\G..)");
这将每2个字符拆分你的字符串。 \G
在前一个匹配之后断言位置(如果之前没有匹配,则为字符串的开头)后跟2个字符。
答案 1 :(得分:0)
[上面的家伙基本上做了同样的事情,只看到刷新,但片段可能仍然有用虽然..]
分割字符串的部分是String[] splitString = results.split("");
这在每个“无”之后分裂,所以实际上,在每个字符分割后都会发生。
这是我为你一起工作的一小段代码片段......
import java.util.Arrays; //only essential for the Arrays toString bit...
public class Main {
//Static so it's usable anywhere..
public static String[] splitStringBy(int everyXLetter, String stringCode)
{
// Split the given string by regex, every Xth letter...
String[] splitIntoSingleElements = stringCode.split("(?<=\\G.{"+everyXLetter+"})");
// Return it
return splitIntoSingleElements;
}
public static void main(String[] args)
{
//Set some string text...
String text = "askfjaskfjasf";
//Split and store the string using the above function
String[] splitText = splitStringBy(2, text);
//Return it any way you like
System.out.println(Arrays.toString(splitText)); // [as, kf, ja, sk, fj, as, f]
System.out.println(splitText[0]); // as
}
}