我想创建一个比较密码(4个字母数字)的系统。
输入代码(我已经有fis)
fis = openFileInput(FILE_NAME);
InputStreamReader isr = new InputStreamReader(fis);
BufferedReader br = new BufferedReader(isr);
StringBuilder sb = new StringBuilder();
String text;
while((text = br.readLine()) != null)
{
sb.append(text).append("\n");
}
String finalinput = sb.toString();
String finalpassinput = password.getText().toString();
Toast.makeText(this, "finalinput:"+finalinput+"finalpassinput:"+finalpassinput,Toast.LENGTH_LONG).show();
if(finalinput.equals(finalpassinput))
{
Toast.makeText(this,"Login!", Toast.LENGTH_SHORT).show();
startActivity(new Intent(MainActivity.this, HomeActivity.class));
}
else
{
Toast.makeText(this,"Incorrect Password",Toast.LENGTH_SHORT).show();
}
并且此源代码会一直说这两个密码不同。
我如何写文件:
fos = openFileOutput(FILE_NAME_PW, MODE_PRIVATE);
fos.write(encodedpw.getBytes());
Toast.makeText(this, "Saved to " + getFilesDir() + "/" + FILE_NAME_PW, Toast.LENGTH_LONG).show();
我很好奇是否encodepw.getBytes()会将字符串更改为任何内容(包括空字符等),并且Java是否会认为它们不相同。 谢谢。
答案 0 :(得分:0)
我找到了答案。 finalinput变量前面有一些空字符,因此您可以使用此函数获取纯字符串。
public static String FileStringParse(String FileString)
{
FileString = FileString.replaceAll("\\D+","");
return FileString;
}