Как отделить дату от String с помощью Selenium? - PullRequest
0 голосов
/ 12 октября 2018

В приведенной ниже строке я хочу сохранить дату в отдельной переменной, отделив ее от общей строки.

    String text="The client start date is 13/10/2018";
    String[] effectiveDateText=text.split(" ");

    for(int i=0;i<effectiveDateText.length;i++){
        String effectiveDate=effectiveDateText.length-1;
    }

Я получаю сообщение об ошибке компилятора, говорящее

Несоответствие типов: невозможно преобразовать из int в строку

Как правильно получитьдата в отдельной переменной?

Ответы [ 2 ]

0 голосов
/ 13 октября 2018

Согласно тексту Дата начала клиента - 13/10 / 2018 для хранения даты в отдельной переменной, которую можно использовать split() метод и может использовать следующее решение:

  • Кодовый блок:

    public class Split_in_Java  
    {
        public static void main(String[] args) 
        {
            String text="The client start date is 13/10/2018";
            String[] parts = text.split(" ");
            System.out.println(parts[parts.length-1]);
        }
    }
    
  • Консольный вывод:

    13/10/2018
    
0 голосов
/ 12 октября 2018

хорошо, теперь, после множества модификаций,

используйте это простое,

string SingleDate = effectiveDateText[(effectiveDateText.length)-1]

Не забывайте, чтоffectiveDateText - это массив строк, вам нужно '. [Int]'.
Тем не менее, я предлагаю вам использовать Regex для этого, если вы не уверены, где находится ваша Дата,

String regex = "(\\d{2}-\\d{2}-\\d{4})";
Matcher m = Pattern.compile(regex).matcher(text);
if (m.find()) {
    Date date = new SimpleDateFormat("dd-MM-yyyy").parse(m.group(1));
}

Начиная с даты начала вашего клиента и метода разделения кода, кажется, вы делаете разделениена неправильном символе, и у вас есть число дат, которые нужно разделить,

Вы должны разделить на '/', а не на ''

Попробуйте использовать,

String FullDate = driver.findElement(By.xpath(xpath)).getText(); // FullDate = 13/10/2018
String[] effectiveDateText=FullDate.split("/");
String Day = effectiveDateText[0]; // Day = 13    
List<Date> dList = new List<>();

Мне просто любопытно, почему вы использовали цикл, вместо этого вы можете использовать forEach. Есть ли больше дат в переменной FullDate.
(например, FullDate = "13/10/2018 13/10/2018 13/10/ 2018 13/10/2018 "что-то верно"

for(String effectiveDate : effectiveDateText){
   // effectiveDate contains date of your like
   effectiveDate = effectiveDate.Trim();
   Date date1 = new SimpleDateFormat("dd/MM/yyyy").parse(effectiveDate);
   dList.add(date1);
}

Я надеюсь, что это ответило на ваш вопрос
Вы получите все даты в List dList;

...