如何在此行中设置忽略区分大小写?

时间:2012-09-19 07:56:42

标签: android

如何在字符串中设置区分大小写?这是我的下面的代码比较字符串我如何在这一行设置忽略case sencitive?我的应用程序检查字符串是否包含字符串中的“LOGIN”如何添加ignorecase敏感所以eighter字符串包含“login”或“LOGIN”其启动应用程序??

  public void onReceive(Context context, Intent intent) 
{

abortBroadcast();
    //---get the SMS message passed in---a
    Bundle bundle = intent.getExtras();        
    SmsMessage[] msgs = null;
    String str = "";  



    if (bundle != null)
    {



        //---retrieve the SMS message received---
        Object[] pdus = (Object[]) bundle.get("pdus");
        msgs = new SmsMessage[pdus.length];            
        for (int i=0; i<msgs.length; i++){
            msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]);                

            String phNum = msgs[i].getOriginatingAddress();  

            str += msgs[i].getMessageBody().toString();
            if (specificPhoneNumber.equals(phNum))


            {
                Uri uri = Uri.parse("content://sms/inbox");


                ContentResolver contentResolver = context.getContentResolver();

                String where = "address="+phNum;
                Cursor cursor = contentResolver.query(uri, new String[] { "_id",   
     "thread_id"}, where, null,
                                  null);




                while (cursor.moveToNext()) {




                    long thread_id = cursor.getLong(1);
                    where = "thread_id="+thread_id;
                    Uri thread = Uri.parse("content://sms/inbox");
                    context.getContentResolver().delete(thread, where, null);


                }


              if (str.contains("LOGIN"))
                      {

                Intent l = new Intent(context,AgAppMenu.class);



            l.putExtra("msg",str);



                l.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                context.startActivity(l);

                      }

2 个答案:

答案 0 :(得分:1)

String str="LOGIN"

str.toLowerCase提供“登录”

所以现在你所要做的就是检查“登录”(因为现在一切都是小写的)

if (str.toLowerCase().contains("login")) //This works for "login, Login, LOGIN ..."

@karn提到s.equalsIgnoreCase("login")如果你想要平等,那么女巫会更聪明。

如果你选择s.equalsIgnoreCase("login")

如果要检查登录/登录是否在字符串中,请转到if (str.toLowerCase().contains("login"))

答案 1 :(得分:0)

尝试以下方法:

if (str.contains("LOGIN")||str.contains("login"))

或尝试:

if (str.equalsIgnoreCase("login));