gpt4 book ai didi

java - Android Regex - 如何在数字后加上连字符?

转载 作者:搜寻专家 更新时间:2023-11-01 08:45:16 26 4
gpt4 key购买 nike

如何使用 TextWatcher 在一定数量的数字后加上连字符?

我有一些文本,用户可以在其中输入一个 8 位数字(可以是任何数字)。但是,我想将 00000000 显示为 0000-0000,将 12345678 显示为 1234-5678,等等。

这是我当前的代码:

@Override
public void afterTextChanged(Editable s) {

if(editabletext.length() == 8) {
editabletext.append("^(?=.*-)[a-zA-Z0-9-]+$");
}

}

最佳答案

如果你想在 4 个数字后加一个连字符,然后正常显示 res,你可以使用这个正则表达式:

([0-9]{4})([0-9]{4})

并将其替换为:

$1-$2

正则表达式搜索 8 位数字,将前 4 位和后 4 位放在捕获组中。第一个捕获组通过使用 $1 检索,第二个捕获组通过在替换中使用 $2 检索。

Here's a live example在 regex101.com 上

您可以不使用正则表达式,而只使用 .substring() ,像这样:

String firstFour = editabletext.substring(0, 4);
String lastFour = editabletext.substring(4);
String newEditableText = firstFour + "-" + lastFour

可以压缩为:

editabletext = editabletext.substring(0, 4) + "-" + editabletext.substring(4);

因此,您的代码可能如下所示:

@Override
public void afterTextChanged(Editable s) {

if(editabletext.length() == 8){
editabletext = editabletext.substring(0, 4) + "-" + editabletext.substring(4);

//or you could use a regex:

editabletext = editabletext.replaceAll("([0-9]{4})([0-9]{4})", "$1-$2")
}
}

关于java - Android Regex - 如何在数字后加上连字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29051955/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com