gpt4 book ai didi

java - 在android中输入文本字段时替换字符串

转载 作者:行者123 更新时间:2023-11-29 06:11:11 27 4
gpt4 key购买 nike

在 EditText 中输入字符串时,例如“Love Is Life”,在输入单词“Love”后输入空格,然后如果单击字母“i”,它会自动将其更改为大写字母“I”。

这意味着String的每个空格后面的字符需要是大写的,并且在EditText中输入字符时动态更改以模拟Camel case格式。

如果有人知道意味着帮助我。

谢谢。

最佳答案

您可以将 TextWatcher 添加到 EditText 并在每次通知文本时得到通知。使用它,您可以只解析字符串以查找空格后的字符,并将它们更新为大写。

这是我做的一个快速测试,效果很好(远非最佳,因为每次您编辑 Editable 时它都会再次调用监听器...)。

    editText.addTextChangedListener(new TextWatcher() {

@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// TODO Auto-generated method stub

}

@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
// TODO Auto-generated method stub

}

@Override
public void afterTextChanged(Editable s) {
String string = s.toString();
int index = -1;
while (((index = string.indexOf(' ', index + 1)) != -1) && (index + 1 < string.length())) {
// Get character
char c = string.charAt(index + 1);
if (Character.isLowerCase(c)) {

// Replace in editable by uppercase version
s.replace(index+1, index + 2, Character.toString(c).toUpperCase());
}
}
}
});

为了避免被频繁调用,您可以在 char[] 中进行所有更改,并且仅在进行更改时才提交到 Editable

一个更简单的解决方案可能是在您的字符串上使用 split(' '),将 String[] 中的所有首字母替换为大写版本(如果需要) ), 并且只向 Editable 提交一次。

一个更简单的优化是在你的匿名类中添加一个 boolean 值,当你进入 afterTextChanged 时将它设置为 try,当你退出它时将它设置回 false,并且只有当 boolean 值是 false 时才处理字符串。

关于java - 在android中输入文本字段时替换字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6786731/

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