在 Java 中将 CharSequence 传递给扫描仪

Pass a CharSequence to a Scanner in Java

Scanner class 有一个采用 String 的构造函数。

Scanner s = new Scanner( myString ) ;

如何从 CharSequence 喂养 CharSequence object to a new Scanner? I could first generate a String,但这效率低下而且相当愚蠢。

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

我正在寻找一种直接从 Scanner 访问 CharSequence 的方法。像这样:

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

Scanner class 在构造函数中也有一个 ReadableCharSequence 可以显示为 Readable 吗?或者有其他解决方法吗?

鉴于构造函数 接受 String 而不是更通用的 CharSequence,您...不能。除非你在 CharSequence 上调用 toString,无论如何,这会让你返回 String,这将满足构造函数的要求。

因此,问题中看到的调用 CharSequence::toString 的解决方法确实是可行的方法:

new Scanner( myCharSequence.toString() )