将关键字等价性从Java更新为C#
我正在将代码从Java转换为C#,但在确定一些关键字等价性时遇到了问题。我在网上查过了,什么也找不到。更新增加了第3条 1) 有人知道C#对charAt()的用法吗?下面是我如何尝试使用它将关键字等价性从Java更新为C#,c#,java,C#,Java,我正在将代码从Java转换为C#,但在确定一些关键字等价性时遇到了问题。我在网上查过了,什么也找不到。更新增加了第3条 1) 有人知道C#对charAt()的用法吗?下面是我如何尝试使用它 curr = tokens[i].charAt(0); 2) 还存在将isEmpty()转换为C#语法的问题 3) 我应该如何将其转换为: op2 = compute.pop().intValue(); 谢谢 1)字符串可以使用[]运算符访问其字符: curr = (tokens[i])[0]; 2)
curr = tokens[i].charAt(0);
2) 还存在将isEmpty()转换为C#语法的问题
3) 我应该如何将其转换为:
op2 = compute.pop().intValue();
谢谢 1)字符串可以使用[]运算符访问其字符:
curr = (tokens[i])[0];
2) IsEmpty变为String.IsNullOrEmpty
或String.IsNullOrWhiteSpace
,具体取决于所需内容(第二个选项也仅在.NET 4+中可用)
3) 从我的研究中可以发现,intValue似乎处理装箱/拆箱。如果您坚持使用int,那么在C#中就不必担心这一点。如果您有一个堆栈集合,“Pop”也会起同样的作用。希望这能给您足够的时间来转换该行。假设
标记[i]
是一个字符串
,将该字符串视为一个字符数组:
var firstCharacter = tokens[i][0];
假设par
也是一个字符串,该方法可以帮助您测试特定字符串是否为空:
if (string.IsNullOrEmpty(par))
{
}
如果如您所示,par
是一个Stack
,那么您可以使用一个简单的LINQ位测试它是否为空(没有元素):
if (!par.Any())
{
// par has no elements
}
或者,您可以使用堆栈
类中的计数
属性:
if (par.Count == 0)
{
// par has no elements
}
1) 在C#
中,字符串也是字符数组。因此,您可以使用索引器访问字符:
curr = tokens[i][0]
2) 您可以将字符串与string.Empty
进行比较,或者使用string.IsNullOrEmpty
方法检查字符串是否为空:
if( par == string.Empty )
或:
另一种方法:
1) 您可以使用curr=tokens[i].ElementAt(0)代码>这将返回与字符(0)相同的结果
2) if(string.IsNullOrEmpty(par))代码>将完成这项工作。请看:看括号是什么?@Selman22,因为我喜欢:)。它清楚地表明,它正在从tokens数组中取出字符串,然后将[]运算符应用于该字符串。另一种方式看起来可能是多维字符串数组。显然,语法对这两种情况都有效。你认为没有他们看起来更好吗?如果PAR是一个堆栈,我会怎么做?例如,我上面有:堆栈PAR=新StAcd();如果PAR是一个堆栈,我会怎么做呢?例如,我上面有:堆栈PAR=新StAcd();
if( par == string.Empty )
if( string.IsNullOrEmpty(par) );