2014-11-06 4 views
0

Я начал изучать Java и испытываю некоторые трудности. Я пытаюсь вычесть две строки.Как вычесть две строки

например, с этими строками; "032" & & "100". Я хочу иметь возможность вычитать каждый номер отдельно, чтобы ответ был «032».

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

Я не ожидаю, для тех, кто, чтобы сделать это для меня, но я хотел бы получить некоторое представление о том, или сказать мне, что я направляюсь в правильном направлении

благодаря

public static String appliquerCoup(String combinaison, String coup) { 

String nouveauCoup=""; 

    if(combinaison!=null&&coup!=null){ 
     for(int i=0;i>combinaison.length();i++){ 
      int a = Integer.parseInt(combinaison.substring(i, i + 1)); 
      int b = Integer.parseInt(coup.substring(i, i + 1)); 
      nouveauCoup=String.valueOf(a-b); 
       if(a-b<0){ 
        nouveauCoup=0; 

        } 
       }  

     } // main 
    return nouveauCoup; 

}

+1

Если вы вычтите строку «цифра вправо», не получите ли вы -132 в качестве вывода? – Turing85

+2

Какова логика, по которой вычитание «100» из «032» дает «032»? Или это опечатка? Вам нужно обрабатывать только 3-значные цифры? –

+2

Как вычесть 032 и 100 результат в 032? Не должно быть 068 или что-то еще? – zyl1024

ответ

1

Если я правильно понял, вы правильно задали вопрос. вы хотите вычесть каждую цифру отдельно. Итак (0-1), (3-0), (2-0). Следующая программа делает это (урожайность -132):

public static void main(String[] args) { 
    String A = "032"; 
    String B = "100"; 
    String str = ""; 
    for(int i = 0; i < A.length(); i++) 
    { 
     int a = Integer.parseInt(A.substring(i, i + 1)); 
     int b = Integer.parseInt(B.substring(i, i + 1)); 
     int c = a - b; 
     str += String.valueOf(c < 0 ? 0 : c); 
    } 
    System.out.println(str); 
} 

По существу, извлечь I-й символ каждой строки, преобразующие их в целые числа, а затем сделать вычитание. Преобразуйте результат обратно в строку и добавьте ее в строку результатов.

+1

Нужно добавить отрицательный тест. –

+0

Я собираюсь бросить ключ на это. Что произойдет, если у вас есть эти два значения «032» и «190»? – hfontanez

+0

Спасибо за помощь, я разместил некоторые из них мой код. Я использовал цикл for, проблема в том, что мне не разрешено использовать StringBuilder.hehe. – Jusra