在 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 在构造函数中也有一个 Readable
。 CharSequence
可以显示为 Readable
吗?或者有其他解决方法吗?
鉴于构造函数 仅 接受 String
而不是更通用的 CharSequence
,您...不能。除非你在 CharSequence
上调用 toString
,无论如何,这会让你返回 String
,这将满足构造函数的要求。
因此,问题中看到的调用 CharSequence::toString
的解决方法确实是可行的方法:
new Scanner( myCharSequence.toString() )
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 在构造函数中也有一个 Readable
。 CharSequence
可以显示为 Readable
吗?或者有其他解决方法吗?
鉴于构造函数 仅 接受 String
而不是更通用的 CharSequence
,您...不能。除非你在 CharSequence
上调用 toString
,无论如何,这会让你返回 String
,这将满足构造函数的要求。
因此,问题中看到的调用 CharSequence::toString
的解决方法确实是可行的方法:
new Scanner( myCharSequence.toString() )