比较Java中的string

我试图比较两个edittext框的值。 我想只是比较passw1 = passw2。 因为我的代码现在正在比较我input的两个string,因为我无法比较它们。

final EditText passw1= (EditText) findViewById(R.id.passw1); final EditText passw2= (EditText) findViewById(R.id.passw2); Button buttoks = (Button) findViewById(R.id.Ok); buttoks.setOnClickListener(new OnClickListener() { public void onClick(View v) { if (passw1.toString().equalsIgnoreCase("1234") && passw2.toString().equalsIgnoreCase("1234")){ Toast.makeText(getApplication(),"Username and password match", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(getApplication(),"Username and password doesn't match", Toast.LENGTH_SHORT).show(); } } }); 

  • 有没有更快的方法来解码HTML字符比stringHtml.fromHtml()?
  • 如何在Android RecyclerView上对string进行sorting?
  • 在Android中,使用\ n在string中返回/换行符
  • 如何在Android中获取Android ID的Android菜单项?
  • Android上的Java中的string似乎并不相同,尽pipe它们的打印效果相同
  • Android:如何在url.xml资源文件中存储url?
  • 如何从string获取资源(int) - Android
  • Long.getLong()失败,返回null为有效的string
  • [编辑]我之前犯了一个错误,因为要获取文本,您需要使用.getText()。toString()。

    这是一个完整的工作示例:

     package com.psegina.passwordTest01; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.LinearLayout; import android.widget.Toast; public class Main extends Activity implements OnClickListener { LinearLayout l; EditText user; EditText pwd; Button btn; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); l = new LinearLayout(this); user = new EditText(this); pwd = new EditText(this); btn = new Button(this); l.addView(user); l.addView(pwd); l.addView(btn); btn.setOnClickListener(this); setContentView(l); } public void onClick(View v){ String u = user.getText().toString(); String p = pwd.getText().toString(); if( u.equals( p ) ) Toast.makeText(getApplicationContext(), "Matches", Toast.LENGTH_SHORT).show(); else Toast.makeText(getApplicationContext(), user.getText()+" != "+pwd.getText(), Toast.LENGTH_SHORT).show(); } } 

    原来的答案(不会因为缺lesstoString())而工作

    尝试使用.getText()而不是.toString()。

     if( passw1.getText() == passw2.getText() ) #do something 

    .toString()返回整个对象的string表示,这意味着它不会返回你在字段中input的文本(通过添加一个Toast来显示.toString()的输出)。

    使用==运算符将比较string的引用而不是string本身。

    好的,你必须toString()可编辑。 我加载了一些我之前处理这种情况的代码。

     String passwd1Text = passw1.getText().toString(); String passwd2Text = passw2.getText().toString(); if (passwd1Text.equals(passwd2Text)) { } 

    在onclik函数取代第一行这一行你一定会得到正确的结果。

    if(passw1.getText()。toString()。equalsIgnoreCase(“1234”)&& passw2.getText()。toString()。equalsIgnoreCase(“1234”)){

    您可以使用Java的equals()来比较这些值:

     public void onClick(View v) { // TODO Auto-generated method stub s1=text1.getText().toString(); s2=text2.getText().toString(); if(s1.equals(s2)) Show.setText("Are Equal"); else Show.setText("Not Equal"); } 

    您需要同时返回一个Editable和toString()的getText()将其转换为string进行匹配。 所以,而不是: passw1.toString().equalsIgnoreCase("1234")您需要passw1.getText().toString().equalsIgnoreCase("1234")

    您可以使用返回负数(<),零(=)或正数(>)的整数的String.compareTo(String)。

    这样使用它:

    您可以使用返回负数(<),零(=)或正数(>)的整数的String.compareTo(String )。

    这样使用它:

      String a="myWord"; if(a.compareTo(another_string) <0){ //a is strictly < to another_string } else if (a.compareTo(another_string) == 0){ //a equals to another_string } else{ // a is strictly > than another_string } 

    尝试在.trim()之前先使用.equals() ,或者创build一个具有这些东西的新的String var。

    在这里做同样需要显示“成功”两次响应是来自PHP的数据

      String res=response.toString().trim; Toast.makeText(sign_in.this,res,Toast.LENGTH_SHORT).show(); if ( res.compareTo("success")==0){ Toast.makeText(this,res,Toast.LENGTH_SHORT).show(); }