java - 是否有与 Java 中的 Scanner 类等效的单声道(.Net)

标签 java .net mono java.util.scanner

在 Java 中,有一个名为 Scanner 的类,用于将特定格式的字符串和流读取为数据结构,如整数、 float ......在 Mono 中是否有任何等效项?在 .Net 中有一个二进制读取器,但它将数据读取为二进制文件。我想要一个通过从字符串中解析数据来读取数据的类。

编辑:对当前答案的 react ,我知道大多数数据类型都有解析方法,但问题是它们不会按顺序读取字符串。在 Java 中,您只需初始化对象,然后通过激活方法,依次读取数据类型。

最佳答案

好吧,既然您正在为测试用例读取文件,我假设您知道传入数据的确切格式以及需要如何解析它。在文档中查看 Java 的 Parser 类确实使它看起来非常复杂或不仅仅是一个方便的类。它似乎只是对空格上的流字符串进行标记,并提供获取标记和解析它的函数。据我所知,.Net 没有等效的类。因此,如果您想要重用一个,那么您需要自己编写一个。

但是您需要的基本算法是读取文件内容、拆分标记并解析它们。如果您的文件大小合适,您可以使用 File.ReadAllLines() 将文件的内容逐行读取到 String[] 中。或者您可以使用 StreamReader 类使用其 ReadLine() 一次读取一行。然后,一旦您将它们排成一行,就可以使用 StringSplit() 对它们进行标记,然后解析它们。

不知道您需要如何使用文件中的值,一个非常基本的模式可能是:

// Read in the whole file
String[] strLines = File.ReadAllLines(strFilePath);

// Loop through each of the lines to process their contents
foreach (String strLine in strLines) {
    // Tokenize on the spaces
    String[] strTokens = strLine.Split(' ');

    // Parse the values
    int iIntValue = Int.Parse(strTokens[0]);
    double dDoubleValue = Double.Parse(strTokens[1]);

    // Do something with the values
}

创建您自己的 Parser 类将允许您在使用时维护状态和自动推进标记。如果您走那条路,StreamReader 可能是最佳选择。

关于java - 是否有与 Java 中的 Scanner 类等效的单声道(.Net),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1867029/

相关文章:

java - 检测在 MainActivity.java 中 Detox 上下文下运行的 Android React Native 应用程序

java - 在 Jetty 中设置 JDBC 身份验证

c# - 使用 VS 2012 进行 .NET Core 开发?

c# - 保存的文件包含(反)斜杠

.net 可移植类库包含 Microsoft.VisualBasic 作为依赖项

regex - 带有 [System.Text.RegularExpressions.Regex]::Match(string,string) 参数的 xbuild 不能正常工作(MSBuild 很好)

java - 使用 Java 进行 RTSP 编程。如何读取单部分框架?

java - Spring Kafka - 代理重新连接事件

.NET 单元测试框架,可以处理多个线程的测试

c# - WCF 服务返回另一个服务(服务工厂?)