我已经创建了一个离线货币转换器,它使用TextWatcher获取EditText部分中的用户输入并从方法中返回所需的ouptut ...并且我已经使它成为用户无法插入“null”的方式“在EditText部分中的值然后按下转换按钮,使用euro.getText!== null例如。但是当用户在输入之间留出一些空格时,我不知道如何继续,例如29 50.这将让我的程序崩溃。我的问题是我应该用什么来检查带空格的输入以避免程序崩溃?谢谢。
答案 0 :(得分:2)
您的程序因数字格式异常而崩溃。你可以这样做:
try{
double value = Double.parseDouble(editText.getText().toString());
} catch(NumberFormatException ex){
Log.e(TAG, "improper number format");
//show some dialog saying what's the format that should be entered
}
你也可以使用正则表达式:
String editTextValue = editText.getText().toString();
if(editTextValue.matches("\\d+\\.\\d+")){
double value = Double.parseDouble(editTextValue);
} else{
//show dialog saying what should be the format.
}
答案 1 :(得分:1)
这实际上非常简单。
您的应用是否接受带逗号或点的数字?无论哪种方式,您只需使用以下内容将String
替换为您选择的符号:
String unspaced = edittext.getText().toString().replace(' ', '.'); // or , depending on what your app uses