2016-08-04 4 views
-2
final EditText ed7 = (EditText)findViewById(R.id.Recycleweight); 
final EditText ed8 = (EditText)findViewById(R.id.Nonweight); 
final EditText ed11 = (EditText)findViewById(R.id.totalweight); 

recy_wt=ed7.getText().toString(); 
nonrec_wt=ed8.getText().toString(); 
total_wt=ed11.getText().toString(); 

int rec = Integer.parseInt(recy_wt); 
int nrec = Integer.parseInt(nonrec_wt); 
ed11.setText(String.valueOf(rec + nrec)); 

вход Я даю это, ED7 = 10кг и ED8 = 20кг, и он будет отображаться в ED11 в 30кг, но приложение, к сожалению, остановка. Если я не пишу 'кг', он правильно отображает totalwt. Но я хочу отобразить «кг» в ответе.строку в целое, в результате чего приложение, чтобы остановить

+0

Какой язык программирования является C# или Java? –

+1

с строкой как «кг», как вы можете разобрать ее в целых числах для использования подстроки или заменить и удалить килограмм из строки, тогда она будет работать – Vickyexpert

+0

Возможный дубликат [Найти и извлечь номер из строки] (http: // stackoverflow. com/вопросы/4734116/find-and-extract-a-number-from-a-string) –

ответ

1

Существует уже решение здесь (не может пометить, как дубликат) Find and extract a number from a string

Извлеките значную часть из строки, а затем разобрать его на целое число

0

Попробовать это

String regexp = "/^[0-9]+kg$/g"; //It accepts only '<number><kg>' format 
int weight = 0; 
if (recy_wt.matches(regexp) && nonrec_wt.matches(regex)) { 
    //It's valid input 
    Scanner scan = new Scanner(recy_wt); 
    weight = Integer.parseInt(scan.findInLine("\\d+(\\.\\d+)?")); 
    Scanner scan = new Scanner(nonrec_wt); 
    weight += Integer.parseInt(scan.findInLine("\\d+(\\.\\d+)?")); 
} 

ed11.setText(String.valueOf(weight + "Kg")); 
+0

Он дает 0kg в качестве ответа. и «scan» вызывает дубликат, после того как я изменил его на «scan1», но все еще не работает. – KiranB

+0

С какими входами вы получаете этот результат? –

+0

с, 20kg и 10kg – KiranB

0

Если единственно возможным устройством является kg, тогда попробуйте вот так

final EditText ed7 = (EditText)findViewById(R.id.Recycleweight); 
final EditText ed8 = (EditText)findViewById(R.id.Nonweight); 
final EditText ed11 = (EditText)findViewById(R.id.totalweight); 

int weight = 0; 

recy_wt=ed7.getText().toString(); 
nonrec_wt=ed8.getText().toString(); 

recy_wt = recy_wt.replace("kg",""); 
nonrec_wt = nonrec_wt.replace("kg",""); 

weight += Integer.parseInt(recy_wt) + Integer.parseInt(nonrec_wt); 

ed11.setText(weight + "kg"); 
+0

нет, его не работает. – KiranB

+0

У вас возникли ошибки? –

+0

Я поделился трюком, который работал на меня. – KiranB

-1

Это будет работать: -

recy_wt=ed7.getText().toString(); 
nonrec_wt=ed8.getText().toString(); 

String n=recy_wt.replace("kg",""); 
String n1=nonrec_wt.replace("kg",""); 

weight += Integer.parseInt(n) + Integer.parseInt(n1); 
ed11.setText(weight + "kg"); 

хранения замененный один в строку, а затем преобразовать в целое поможет.

+0

В чем разница между этим и моим вторым ответом? –

+0

Там я все еще получал 0кг в качестве ответа – KiranB

+0

там я забыл назначить новую строку (т.е. после str.replace ("кг", "")) к переменным. но логика такая же. теперь я обновил ответ –

Смежные вопросы