Ответ прост: element.all
имеет свою собственную функцию , затем , объявленную отдельно.
Поэтому, когда вы делаете так
let result = element.all();
, вы получите ElementArrayFinder
в результате, как указано в разделе Возвращает . ElementArrayFinder
- это объект, который имеет все заданные вами функции get
, each
и т. Д.
Но если превратить его в обещание,
let result = await element.all();
, то он вернет A promise which will resolve to an array of ElementFinders represented by the ElementArrayFinder.
, что в основном равно ElementFinder[]
, как указано в разделе Возвращает функции ElementArrayFinder.prototype.then
.
Для линии обработки вы можете использовать сканер и получать токены из в каждой строке вы можете использовать split.
Scanner scanner = new Scanner(new File(loc));
try {
while ( scanner.hasNextLine() ){
String[] tokens = scanner.nextLine().split("~");
// do the processing for tokens here
}
}
finally {
scanner.close();
}
Вы можете использовать метод useDelimiter ("~")
, чтобы позволить вам перебирать токены в каждой строке с hasNext () / next ()
, в то же время используя hasNextLine () / nextLine ()
для перебора самих строк.
РЕДАКТИРОВАТЬ: Если вы При выполнении сравнения производительности вы должны предварительно скомпилировать регулярное выражение при выполнении теста split ():
Pattern splitRegex = Pattern.compile("~");
while ((line = bufferedReader.readLine()) != null)
{
String[] tokens = splitRegex.split(line);
// etc.
}
Если вы используете String # split (String regex)
, регулярное выражение будет перекомпилироваться каждый раз , (Сканер автоматически кэширует все регулярные выражения при первой их компиляции.) Если вы сделаете это, я не ожидаю увидеть большую разницу в производительности.
Я бы сказал split ()
самый быстрый и, вероятно, достаточно хорош для того, что вы делает. Это менее гибкий, чем сканер
, хотя. StringTokenizer
устарел и доступен только для обратной совместимости, поэтому не используйте его.
РЕДАКТИРОВАТЬ: Вы всегда можете протестировать обе реализации, чтобы увидеть, какая из них быстрее. Мне любопытно, может ли сканер
быть быстрее, чем split ()
. Разделение может быть быстрее для сканера VS данного размера
, но я не уверен в этом.