我正在将代码从Java转换为C#,但在解决某些关键字等效问题时遇到了问题。我查看了网络,无法找到任何内容。更新了已添加的数字3。
1)有没有人知道C#用于charAt()的是什么?以下是我尝试使用它的方法。
curr = tokens[i].charAt(0);
2)还有将isEmpty()转换为C#语法的问题。
if (par.isEmpty())
3)我应该如何转换它:
op2 = compute.pop().intValue();
谢谢!
答案 0 :(得分:3)
1)字符串可以使用[]运算符访问其字符:
curr = (tokens[i])[0];
2)IsEmpty根据您的需要变为String.IsNullOrEmpty
或String.IsNullOrWhiteSpace
(第二个仅在.NET 4+中可用)。
3)从我能找到的研究中,看起来intValue处理装箱/拆箱。如果你坚持使用整数,你不应该在C#中担心这一点。 "流行#34;如果你有一个Stack集合,它将工作相同。希望这足以让你转换线。
答案 1 :(得分:1)
假设tokens[i]
是string
,请将字符串视为字符数组:
var firstCharacter = tokens[i][0];
假设par
也是一个字符串,string.IsNullOrEmpty()
方法可以帮助您测试特定字符串是否为空:
if (string.IsNullOrEmpty(par))
{
}
如果par
是您所指示的Stack<String>
,那么您可以使用简单的LINQ来测试它是否为空(没有元素):
if (!par.Any())
{
// par has no elements
}
或者,您可以使用Count
类中的Stack
属性:
if (par.Count == 0)
{
// par has no elements
}
答案 2 :(得分:1)
1)在C#
中,字符串也是一个字符数组。因此,您可以使用索引器访问字符:
curr = tokens[i][0]
2)您可以将字符串与string.Empty
进行比较,或使用String.IsNullOrEmpty
方法检查字符串是否为空:
if( par == string.Empty )
OR:
if( string.IsNullOrEmpty(par) );
答案 3 :(得分:1)
另一种方法:
1)您可以使用curr = tokens[i].ElementAt(0);
这将返回与charAt(0)相同的结果
2)if( string.IsNullOrEmpty(par) );
将完成这项工作。