从Java到C#的UPDATE关键字等价性
本文关键字:关键字 UPDATE Java | 更新日期: 2023-09-27 17:59:22
我正在将代码从Java转换为C#,但在计算一些关键字等价性时遇到了问题。我浏览了一下网页,什么也找不到。更新了添加的编号3。
1) 有人知道C#对charAt()使用什么吗?以下是我如何尝试使用它。
curr = tokens[i].charAt(0);
2) 在将isEmpty()转换为C#语法时也存在问题。
if (par.isEmpty())
3) 我应该如何转换这个:
op2 = compute.pop().intValue();
谢谢!
1)字符串可以使用[]运算符访问其字符:
curr = (tokens[i])[0];
2) IsEmpty变为String.IsNullOrEmpty
或String.IsNullOrWhiteSpace
,具体取决于您想要什么(第二个也仅在.NET 4+中可用)。
3) 从我能找到的研究来看,intValue似乎处理装箱/取消装箱。如果您坚持使用int,那么在C#中就不必担心这一点。如果你有一个Stack集合,"Pop"也会起作用。希望这能给你足够的时间来转换线路。
1)在C#
中,字符串也是一个字符数组。因此,您可以使用索引器访问字符:
curr = tokens[i][0]
2) 您可以将字符串与string.Empty
进行比较,也可以使用String.IsNullOrEmpty
方法检查字符串是否为空:
if( par == string.Empty )
或:
if( string.IsNullOrEmpty(par) );
假设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
}
或者,您可以在Stack
类中使用Count
属性:
if (par.Count == 0)
{
// par has no elements
}
一种不同的方法:
1) 您可以使用curr = tokens[i].ElementAt(0);
这将返回与charAt(0)相同的结果
2) if( string.IsNullOrEmpty(par) );
会做这项工作。