2015-11-04 1 views
0

Может кто-нибудь, пожалуйста, дайте мне знать, как удалить символ $, отображаемый в списке результатов нижеприведенного кода? Кроме того, я хочу добавить сумму всех элементов после удаления. Пожалуйста, сделайте нужным.

public static void HHDollarAmoutValidation(){ 
     try{    
      int AAWithclientTablecount = webDriver.findElements(By.xpath("//*[@id='DataTables_Table_21']/tbody/tr")).size();    
      System.out.println(AAWithclientTablecount); 
      String[] options=new String[AAWithclientTablecount]; 
      List<String> optionsList=null; 
      for (int i=1; i<=AAWithclientTablecount; i++) 
      { 
       options[i-1] = webDriver.findElement(By.xpath("//*[@id='DataTables_Table_21']/tbody/tr["+ i + "]/td[8]")).getText(); 
       System.out.println(options[i-1]); 
       optionsList = Arrays.asList(options); 

      } 
       System.out.println(optionsList); 
      } 

      catch(Exception e){ 
       System.out.println(e); 
      } 

} 

Выход:

[$3,171,349.51, $0.00, $0.00, $0.00, $0.00, $0.00, $0.00, $0.00, $0.00, $0.00, $0.00, $0.00, $0.00, $0.00, $0.00, $0.00, $0.00, $0.00, $0.00] 
+0

Пробовали ли вы что-нибудь самостоятельно? Похоже, что это существующий код, и вы хотите, чтобы мы выполнили все ваши задания. – f1sh

ответ

0

Если все элементы имеют '$', как первый символ, просто изменить эту строку, чтобы избавиться от них:

options[i-1] = webDriver.findElement(By.xpath("//*[@id='DataTables_Table_21']/tbody/tr["+ i + "]/td[8]")).getText();

в :

options[i-1] = webDriver.findElement(By.xpath("//*[@id='DataTables_Table_21']/tbody/tr["+ i + "]/td[8]")).getText().substring(1);

Для вычисления суммы введите код цикла или добавьте значение в то же самое время, когда вы вставляете его в массив options.

+0

Спасибо, Fran :) Это сработало. Будет включать цикл для суммирования и сообщать вам об этом. – Rahul

+0

Fran, я пробовал разные способы, но не получал логику, чтобы делать сумму этих значений массива, как новую для Java. Не могли бы вы сообщить мне то же самое. Заранее спасибо !! – Rahul

+0

@ Raghu обзор, который http://stackoverflow.com/questions/4550662/how-do-you-find-the-sum-of-all-the-numbers-in-an-array-in-java –

0

Просто удалите $ из options массива перед добавлением его к optionsList:

options[i - 1] = options[i - 1].replace("$", ""); //add this line in the for loop 

Затем сделайте суммирование.

Примечание: Существует много вариантов для этого.

0

Вы можете реализовать следующую логику в списке -

public static void main(String[] args) { 
    List<String> l = new LinkedList<String>(); 
    List<Double> r = new LinkedList<Double>(); 
    l.add("$12"); 
    l.add("$3.2"); 
    l.add("$2.5"); 
    l.add("4.5"); 

    for (String s: l) { 
     if (s.startsWith("$")) { 
      s = s.substring(1); 
      r.add(new Double(s)); 
     } else { 
      r.add(new Double(s)); 
     } 
    } 

    System.out.println(r); 

    System.out.println(getSum(r)); 
} 

private static Double getSum(List<Double> l) { 
    Double r = new Double(0); 

    for(Double d : l) { 
     r = r + d; 
    } 

    return r; 
} 
0

Рабочий код:

                        public static void HHDollarAmoutValidation(){ 
    try{    
     int AAWithclientTablecount = webDriver.findElements(By.xpath("//*[@id='DataTables_Table_21']/tbody/tr")).size();    
     System.out.println(AAWithclientTablecount); 
     String[] options=new String[AAWithclientTablecount]; 
     List<String> optionsList=null; 
     for (int i=1; i<=AAWithclientTablecount; i++) 
      { 
       String Vstring = webDriver.findElement(By.xpath("//*[@id='DataTables_Table_21']/tbody/tr["+ i + "]/td[8]")).getText().replace(",", "").substring(1).trim(); 

       System.out.println(Vstring+ " (at row: "+i+")"); 

       sumIt = sumIt + Double.parseDouble(Vstring); 
      } 

       System.out.println(sumIt); 

     } 

     catch(Exception e){ 
      System.out.println(e); 
     } 

}

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