java - String.split() 和 ReplaceAll 从 Java 到 VB.net

标签 java vb.net

我有几行 Java 代码需要转换为 VB.net:

1) s.replaceAll("f\\((.*)\\).*", "$1").trim()
2) s.split("\\,")
3) s.split("\\s+")
4) s.replaceAll("[Tt]hreshold\\s*=(.*)", "$1").trim()

我使用 Java 到 VB.net 转换器,结果如下:

1) s = s.ReplaceAll("f\((.*)\).*", "$1").Trim()
2) s.Split("\,", True)
3) s.Split("\s+", True)
4) s.ReplaceAll("[Tt]hreshold\s*=(.*)", "$1").Trim()

我遇到的问题是这段代码不起作用。第 2 行和第 3 行有错误“参数匹配参数‘分隔符’从‘字符串’缩小为‘1 - Char 维数组’”。第 1 行和第 4 行表示“ReplaceAll”不是“String”的成员。 我有点困惑,我怎样才能让它像Java代码一样工作呢?非常感谢您的帮助。

最佳答案

在 Java 中,与 .NET 不同,String 上的方法允许正则表达式。在 .NET 中,将使用正则表达式库(位于 System.Text.RegularExpressions 中)。转换器无法识别这种差异。

在 Java 和 .NET 中,字符串都是不可变的,也就是说,Java 代码不会更改 s 的值,并且这些行本身是无操作的。您需要捕获每个调用的结果,例如作为变量,以供以后使用。

第一行:

s.replaceAll("f\\((.*)\\).*", "$1").trim()

这可以使用正则表达式库表示为

Regex.Replace(s, "f\((.*)\).*", "$1").Trim()
<小时/>

现在选择第二行:

s.split("\\,")

此表达式只是将逗号分隔的字符串拆分为数组。 (逗号不需要转义;此表达式与 s.split(",") 相同)。等效的 VB 代码不需要正则表达式,很简单:

s.split(","c)

(或者,分配给变量,dim Sa as String() = s.Split(","c)。)

<小时/>

第三行:

s.split("\\s+")

此模式使用正则表达式来使用以空格(任意数量的字符)分隔的字符串。 Regex.Split 方法返回相同的结果:

Regex.Split(s, "\s+")
<小时/>

最后,采取:

s.replaceAll("[Tt]hreshold\\s*=(.*)", "$1").trim()

此构造在功能上与第一个构造相同,尽管模式不同。在VB中可以表示为:

Regex.Replace(s, "[Tt]hreshold\\s*=(.*)", "$1").Trim()

关于java - String.split() 和 ReplaceAll 从 Java 到 VB.net,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20362425/

相关文章:

java - Kotlin 中接口(interface)的 Lambda 实现

java - 获取不同项目中具有应用程序名称的包

mysql - 从两个不同的表中计算一个字段并显示在 DatagridView 中

javascript - IE11 Edge JavaScript 已弃用和过时的功能

asp.net - 清除 Repeater Vb.net 中的所有行

java - 检测代码后出现 NoClassDefFoundError

java - 将 App Engine cron 作业分解成更小的 block ?

asp.net - Asp 将查询放入数组并在不刷新页面的情况下通过它

java - 通过改造发布到 Google Cloud Messaging

.net - 在Visual Studio中捕获JIT错误