手势密码校验的问题,char和int

来源:互联网 发布:删除表的数据sql语句 编辑:程序博客网 时间:2024/06/01 13:07

今天写东西的时候发现一个小问题,就是关于类型转换的问题,下面简单的介绍下。

这个是我只一个手势密码校验的时候遇到的,其实后来发现校验手势密码可以不用逐个去校验,可以按照整个字符串或者将这个字符串进行MD5签名直接校验签名值都是可以的,方式有很多也各有利弊,到时还是要看自己的需求来确定。

1.我这的需求是将一个数组进行本地存储,然后在其他的时间取出来。

首先是存储代码:

for (int i = 0; i < cId.size(); i++) {stringBuffer.append(cId.get(i) );}if (mString == null || "".equals(mString))            {sp.edit().putString("value",stringBuffer.toString().trim()).commit();}
2.存储完成之后就是在校验密码的时候取出,并将其转换成一个int[]传递回去,下面是代码

                 mString = sp.getString("value", "");if (mString != null && !"".equals(mString)) {String myString = mString.trim();char[] charArray = myString.toCharArray();arrays = new int[charArray.length];//数组必须初始化,并且长度是固定的。for (int i = 0; i < charArray.length; i++) {//这里是要注意的地方了,char不能直接转化为int因为char转换出来是ASCII码,                               //所以要做处理,虽然是数字也要按照string来做,当然应该还要很多方法,欢迎补充                         arrays[i] = Integer.parseInt(String.valueOf(charArray[i]));System.out.println(arrays[i]+"***********");System.out.println(charArray[i]+"------------");}System.out.println(arrays.length);mGestureLockViewGroup.setAnswer(arrays);//这里是设置预先的答案。}
下面是另外的存储方式,也是很简单的,下面简单的介绍下。

1.还是存储内容

for (int i = 0; i < cId.size(); i++) {stringBuffer.append(cId.get(i)+"," );}if (mString == null || "".equals(mString))            {sp.edit().putString("value",stringBuffer.toString().trim()).commit();}
2.继续取出来分割

               mString = sp.getString("value", "");if (mString != null && !"".equals(mString)) {String myString = mString.trim();String[] split = myString.split(",");            arrays = new int[split.length];//数组必须初始化,并且长度是固定的。for (int i = 0; i < charArray.length; i++) {                        arrays[i] =Integer.parseInt(split[i]) ;System.out.println(arrays[i]+"***********");System.out.println(charArray[i]+"------------");}System.out.println(arrays.length);mGestureLockViewGroup.setAnswer(arrays);//这里是设置预先的答案。}
基本变化不大,这里和我以前做过的缓存用户名有些相似,不过用户名那个涉及会有去重复什么的。

基本就是这样,关于各个类型之间的转换是java中最基础的内容,也是必要掌握的知识,今天这个小内容希望对大家会有帮助。


0 0
原创粉丝点击