Android正则表达式校验11位数字

作为一名经验丰富的开发者,我将教会你如何在Android中使用正则表达式校验11位数字。首先,让我们整理一下整个过程的流程,然后逐步介绍每个步骤需要做的事情和相应的代码。

流程图

flowchart TD
    Start(开始)
    Input(输入11位数字)
    Validate(校验)
    Output(输出结果)
    End(结束)

    Start --> Input
    Input --> Validate
    Validate --> Output
    Output --> End

步骤及代码

步骤 1:输入11位数字

在这一步,我们需要获取用户输入的11位数字。可以使用EditText组件来获取用户输入,然后将其保存在一个字符串变量中。

EditText editText = findViewById(R.id.editText);
String input = editText.getText().toString();

步骤 2:校验

在这一步,我们将使用正则表达式来校验输入的11位数字。在Android中,可以使用java.util.regex.Patternjava.util.regex.Matcher来进行正则表达式的匹配。

首先,我们需要定义一个正则表达式模式,以匹配11位数字。在这个例子中,我们可以使用\\d{11}来表示11个数字。

String pattern = "\\d{11}";

然后,我们需要创建一个Pattern对象,并使用正则表达式模式进行初始化。

Pattern regexPattern = Pattern.compile(pattern);

接下来,我们可以使用Matcher对象来进行匹配。我们将使用matches方法来检查输入字符串是否与正则表达式匹配。如果匹配成功,返回true,否则返回false

Matcher matcher = regexPattern.matcher(input);
boolean isMatched = matcher.matches();

步骤 3:输出结果

在这一步,我们将根据校验结果输出相应的信息给用户。我们可以使用Toast来显示校验结果。

if (isMatched) {
    Toast.makeText(this, "输入的是11位数字", Toast.LENGTH_SHORT).show();
} else {
    Toast.makeText(this, "输入的不是11位数字", Toast.LENGTH_SHORT).show();
}

完整代码

下面是完整的示例代码,包括布局文件和MainActivity文件。

布局文件

<LinearLayout xmlns:android="
    xmlns:tools="
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <EditText
        android:id="@+id/editText"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="请输入11位数字" />

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="校验" />

</LinearLayout>

MainActivity文件

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        final EditText editText = findViewById(R.id.editText);
        Button button = findViewById(R.id.button);

        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String input = editText.getText().toString();
                String pattern = "\\d{11}";

                Pattern regexPattern = Pattern.compile(pattern);
                Matcher matcher = regexPattern.matcher(input);
                boolean isMatched = matcher.matches();

                if (isMatched) {
                    Toast.makeText(MainActivity.this, "输入的是11位数字", Toast.LENGTH_SHORT).show();
                } else {
                    Toast.makeText(MainActivity.this, "输入的不是11位数字", Toast.LENGTH_SHORT).show();
                }
            }
        });
    }
}

以上就是使用正则表达式在Android中校验11位数字的完整流程。希望这篇文章对你有所帮助!