我使用共享偏好来存储像这样的字符串:"hello,hi,watsup,gdni8"
并且在接收者的一侧我通过使用string.split(“,”)将其拆分并存储在字符串数组中。
我的代码是
//isRegistered is just a button check
if(isRegistered) {
String seperatedByComma=preferences.getString("keysSeperatedByComma","");
String arrayOfSeperatedStrings[]=seperatedByComma.split(",");
for( int j=0;j< arrayOfSeperatedStrings.length;j++) {
if(message.equalsIgnoreCase(arrayOfSeperatedStrings[i])) {
flag=1;
break;
}
}
if(flag==1){
String keymessage=preferences.getString("AutomaticResponse", "");
// do action
} else {
String defaultmessage="i am busy,talk to you later";
//do action
}
这就是我正在使用的那种代码,好吧如果我为该字符串“keysSeperatedByComma”提供一个单词,如“gdnite”,它的到达并且标志设置为1 ..但是如果我给出像“gdnite”这样的东西,嗨“即使hi在那里,它也没有达到if块,否则部分正在执行 “gdnite,gdni8”,它没有达到
答案 0 :(得分:0)
我不知道Array
必要条件是否是强制要求,但如果您可以使用Set
,则完全有可能。
自API级别11及更高版本起,它实现了getStringSet()
。更多信息here。
所以基本上你可以定义一个Set<String>
,使用它们并存储整个结构。之后,您可以使用此方法恢复它。
答案 1 :(得分:0)
for( int j=0;j< arrayOfSeperatedStrings.length;j++){
if(message.equalsIgnoreCase(arrayOfSeperatedStrings[j]))//instead of [i] replace it with [j]
{
flag=1;
break;
}
}
试试这段代码