मैं एक प्रणाली बनाना चाहता हूं जो पासवर्ड की तुलना करता है (4 अक्षर संख्यात्मक)।

इनपुट कोड (मेरे पास पहले से ही फिस है)

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() स्ट्रिंग में कुछ भी बदल देगा (शून्य वर्ण, आदि सहित) और यदि जावा उन्हें ऐसा नहीं सोचेगा। धन्यवाद।

0
Janghyub Seo 8 अक्टूबर 2018, 17:06

1 उत्तर

सबसे बढ़िया उत्तर

मैंने खुद इसका जवाब ढूंढ लिया। finalinput वेरिएबल से पहले कुछ null charachter था, इसलिए आप इस फ़ंक्शन का उपयोग करके शुद्ध स्ट्रिंग प्राप्त कर सकते हैं।

public static String FileStringParse(String FileString)
{
    FileString = FileString.replaceAll("\\D+","");
    return FileString;
}
0
Janghyub Seo 11 अक्टूबर 2018, 10:59