Передайте CharSequence сканеру в Java - PullRequest
0 голосов
/ 21 мая 2018

Класс Scanner имеет конструктор, принимающий String.

Scanner s = new Scanner( myString ) ;

Как передать объект CharSequence новому Scanner?Сначала я мог бы сгенерировать String из CharSequence, но это неэффективно и довольно глупо.

Scanner s = new Scanner( myCharSequence.toString() ) ;  // Workaround, but seems needlessly inefficient to instantiate a `String`. 

Я искал способ получить доступ к CharSequence непосредственно изScanner.Примерно так:

Scanner s = new Scanner( myCharSequence ) ;  // Use `CharSequence` directly.

Класс Scanner также принимает Readable в конструкторе.Может ли CharSequence быть представлен как Readable?Или есть какой-то другой обходной путь?

1 Ответ

0 голосов
/ 21 мая 2018

Учитывая, что конструкторы только принимают String, а не более общие CharSequence, вы ... не можете.В любом случае, если вы не вызовете toString на CharSequence, что вернет вам String, что удовлетворит требования конструктора.

Итак, обходной путь вызывает CharSequence::toString как видно из Вопроса, действительно путь:

new Scanner( myCharSequence.toString() ) 
...