如何将大写字母转换为小写字母?
How to convert uppercase letter to lowercase?
我正在创建一个应用程序,在我的登录页面我可以同时输入大写和小写字母,我想要的是如果用户输入大写字母它应该转换为小写字母,简而言之我不想让用户输入大写字母
<EditText
android:id="@+id/email"
android:layout_width="match_parent"
android:layout_height="60dp"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:background="@drawable/f_name"
android:gravity="center"
android:hint="EMAIL"
android:inputType="textEmailAddress"
android:textColor="#676767"
android:textSize="20sp"
/>
<EditText
android:id="@+id/password"
android:layout_width="match_parent"
android:layout_height="60dp"
android:layout_below="@id/email"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:layout_marginTop="5dp"
android:background="@drawable/f_name"
android:gravity="center"
android:hint="PASSWORD"
android:inputType="textPassword"
android:textColor="#676767"
android:textSize="20sp"
/>
代码
etemail = (EditText) findViewById(R.id.email);
etemail.setInputType(android.text.InputType.TYPE_CLASS_TEXT | android.text.InputType.TYPE_TEXT_FLAG_MULTI_LINE);
试试这个:
String properCase (String inputVal) {
// Empty strings should be returned as-is.
if (inputVal.length() == 0) return "";
// Strings with only one character uppercased.
if (inputVal.length() == 1) return inputVal.toUpperCase();
// Otherwise uppercase first letter, lowercase the rest.
return inputVal.substring(0,1).toUpperCase()
+ inputVal.substring(1).toLowerCase();
}
我可以建议你一个小技巧,你可以在编辑文本中添加一个textchangelistener,并在他更改文本后立即取消每个字母的大写。
Field1 = (EditText) findViewById(R.id.email);
Field1.addTextChangedListener(new TextWatcher() {
@Override
public void afterTextChanged(Editable s)
{
Field1.setText(s.toString().toLowerCase());
}
@Override
public void beforeTextChanged(CharSequence s, int start,
int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start,
int before, int count)
{
Field1.setText(s.toString().toLowerCase());
}
});
在 XML 中,如果您想限制用户只能输入小写字母,请将此添加到您的编辑文本中。
android:digits="abcdefghijklmnopqrstuvwxyz "
或
android:digits="abcdefghijklmnopqrstuvwxyz1234567890 "
如果你也想允许输入数字。
您需要添加此代码以在用户键入时将 EditText 转换为小写。
//Add this line to the onCreate method
editText.addTextChangedListener(editTextWatcher);
//Create the TextWatcher as a class variable (outside methods).
private final TextWatcher editTextWatcher = new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void afterTextChanged(Editable editable) {
String s = editable.toString();
if (!s.equals(s.toLowerCase())) {
s = s.toLowerCase();
R.id.editText.setText(s);
R.id.editText.setSelection(R.id.editText.getText().toString().length());
}
}
};
EditText edit = (EditText)findViewById(R.id.email);
String input;
input = edit.getText().toString();
input = input.toLowerCase(); //converts the string to lowercase
or
input = input.toUpperCase(); //converts the string to uppercase
我正在创建一个应用程序,在我的登录页面我可以同时输入大写和小写字母,我想要的是如果用户输入大写字母它应该转换为小写字母,简而言之我不想让用户输入大写字母
<EditText
android:id="@+id/email"
android:layout_width="match_parent"
android:layout_height="60dp"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:background="@drawable/f_name"
android:gravity="center"
android:hint="EMAIL"
android:inputType="textEmailAddress"
android:textColor="#676767"
android:textSize="20sp"
/>
<EditText
android:id="@+id/password"
android:layout_width="match_parent"
android:layout_height="60dp"
android:layout_below="@id/email"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:layout_marginTop="5dp"
android:background="@drawable/f_name"
android:gravity="center"
android:hint="PASSWORD"
android:inputType="textPassword"
android:textColor="#676767"
android:textSize="20sp"
/>
代码
etemail = (EditText) findViewById(R.id.email);
etemail.setInputType(android.text.InputType.TYPE_CLASS_TEXT | android.text.InputType.TYPE_TEXT_FLAG_MULTI_LINE);
试试这个:
String properCase (String inputVal) {
// Empty strings should be returned as-is.
if (inputVal.length() == 0) return "";
// Strings with only one character uppercased.
if (inputVal.length() == 1) return inputVal.toUpperCase();
// Otherwise uppercase first letter, lowercase the rest.
return inputVal.substring(0,1).toUpperCase()
+ inputVal.substring(1).toLowerCase();
}
我可以建议你一个小技巧,你可以在编辑文本中添加一个textchangelistener,并在他更改文本后立即取消每个字母的大写。
Field1 = (EditText) findViewById(R.id.email);
Field1.addTextChangedListener(new TextWatcher() {
@Override
public void afterTextChanged(Editable s)
{
Field1.setText(s.toString().toLowerCase());
}
@Override
public void beforeTextChanged(CharSequence s, int start,
int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start,
int before, int count)
{
Field1.setText(s.toString().toLowerCase());
}
});
在 XML 中,如果您想限制用户只能输入小写字母,请将此添加到您的编辑文本中。
android:digits="abcdefghijklmnopqrstuvwxyz "
或
android:digits="abcdefghijklmnopqrstuvwxyz1234567890 "
如果你也想允许输入数字。
您需要添加此代码以在用户键入时将 EditText 转换为小写。
//Add this line to the onCreate method
editText.addTextChangedListener(editTextWatcher);
//Create the TextWatcher as a class variable (outside methods).
private final TextWatcher editTextWatcher = new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void afterTextChanged(Editable editable) {
String s = editable.toString();
if (!s.equals(s.toLowerCase())) {
s = s.toLowerCase();
R.id.editText.setText(s);
R.id.editText.setSelection(R.id.editText.getText().toString().length());
}
}
};
EditText edit = (EditText)findViewById(R.id.email);
String input;
input = edit.getText().toString();
input = input.toLowerCase(); //converts the string to lowercase
or
input = input.toUpperCase(); //converts the string to uppercase