【问题标题】:UPDATE Keyword Equivalence From Java to C#更新从 Java 到 C# 的关键字等价
【发布时间】:2014-04-22 23:58:55
【问题描述】:

我正在将代码从 Java 转换为 C#,但在找出一些关键字等价时遇到了问题。我浏览了网络,找不到任何东西。更新添加数字 3。

1) 有人知道 C# 对 charAt() 的用途吗?以下是我尝试使用它的方式。

 curr = tokens[i].charAt(0);

2) 在将 isEmpty() 转换为 C# 语法时也遇到问题。

 if (par.isEmpty())

3) 我应该如何转换:

op2 = compute.pop().intValue();

谢谢!

【问题讨论】:

标签: c# java


【解决方案1】:

1) 字符串可以使用 [] 操作符访问其字符:

curr = (tokens[i])[0];

2) IsEmpty 变为 String.IsNullOrEmptyString.IsNullOrWhiteSpace,具体取决于您的需要(第二个仅在 .NET 4+ 中可用)。

3) 根据我能找到的研究,看起来 intValue 处理装箱/拆箱。如果您坚持使用 int,则无需担心 C# 中的问题。如果你有一个 Stack 集合,“Pop”也一样。希望这足以让您转换线路。

【讨论】:

  • 括号代表什么?
  • @Selman22 因为我喜欢它:)。它清楚地表明它将字符串从令牌数组中取出,然后将 [] 运算符应用于该字符串。另一种方式看起来可能是一个多维字符串数组。显然,该语法对这两种情况都有效。你觉得没有它们会更好看吗?
【解决方案2】:

1) 在C# 中,字符串也是一个字符数组。所以你可以使用索引器访问一个字符:

curr  = tokens[i][0]

2) 您可以将您的字符串与string.Empty 进行比较或使用String.IsNullOrEmpty 方法检查字符串是否为空:

if( par == string.Empty )

或者:

if( string.IsNullOrEmpty(par) );

【讨论】:

  • 如果 par 是一个堆栈,我该怎么做。例如,我上面有这个: Stack par = new Stack();
【解决方案3】:

假设tokens[i]string,将字符串视为字符数组:

var firstCharacter = tokens[i][0];

假设par也是一个字符串,string.IsNullOrEmpty()方法可以帮你测试一个特定的字符串是否为空:

if (string.IsNullOrEmpty(par))
{
}

如果 parStack<String>,正如您所指出的,那么您可以使用简单的 LINQ 测试它是否为空(没有元素):

if (!par.Any())
{
    // par has no elements
}

或者,您可以在Stack 类中使用Count 属性:

if (par.Count == 0)
{
    // par has no elements
}

【讨论】:

  • 如果 par 是一个堆栈,我该怎么做。例如,我上面有这个: Stack par = new Stack();
【解决方案4】:

另一种方法:

1) 你可以使用curr = tokens[i].ElementAt(0); 这将返回与charAt(0) 相同的结果



2) if( string.IsNullOrEmpty(par) ); 将完成这项工作。

【讨论】:

    猜你喜欢
    • 2011-03-27
    • 2010-10-06
    • 1970-01-01
    • 1970-01-01
    • 2013-07-03
    • 1970-01-01
    • 1970-01-01
    • 2018-08-17
    • 1970-01-01
    相关资源
    最近更新 更多