C# IEnumerable的Java等价物<;char>;
这是我必须转换的C代码:C# IEnumerable的Java等价物<;char>;,c#,java,translation,C#,Java,Translation,这是我必须转换的C代码: static readonly IEnumerable<char> BigAlphas = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".ToCharArray(); 静态只读IEnumerable bigaphas=“abcdefghijklmnopqrstuvxyz”.ToCharArray(); 到目前为止,我已经尝试了以下方法: static final Iterable<Character> BigAlphas = "A
static readonly IEnumerable<char> BigAlphas = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".ToCharArray();
静态只读IEnumerable bigaphas=“abcdefghijklmnopqrstuvxyz”.ToCharArray();
到目前为止,我已经尝试了以下方法:
static final Iterable<Character> BigAlphas = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".toCharArray();
static final Iterable bigaphas=“abcdefghijklmnopqrstuvxyz”.toCharArray();
这给了我一个错误:
不兼容类型
必需:java.lang.Iterable
找到:char[]
我知道我遇到了这个错误,因为我试图将
Iterable
设置为char数组
,但我不确定还能做些什么来翻译它。简单的字符串行吗
static final String BigAlphas = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
String实现了CharSequence,这似乎是您所需要的,而且它还有大量的方法来检查成员身份等等。一个简单的字符串可以工作吗
static final String BigAlphas = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
static final Iterable<Character> alphabet() {
return new Iterable<Character>() {
public final Iterator<Character> iterator() {
return new Iterator<Character>() {
private char cursor = 'A';
public boolean hasNext() {
return cursor <= 'Z';
}
public Character next() {
return cursor++;
}
public void remove() {
throw new UnsupportedOperationException("cannot remove from stream");
}
};
}
};
}
String实现了CharSequence,这似乎是您所需要的,并且它还有很多方法来检查成员资格等等
static final Iterable<Character> alphabet() {
return new Iterable<Character>() {
public final Iterator<Character> iterator() {
return new Iterator<Character>() {
private char cursor = 'A';
public boolean hasNext() {
return cursor <= 'Z';
}
public Character next() {
return cursor++;
}
public void remove() {
throw new UnsupportedOperationException("cannot remove from stream");
}
};
}
};
}
这里有一个更通用的形式
static final Iterable<Character> iterable(final CharSequence seq) {
return new Iterable<Character>() {
public final Iterator<Character> iterator() {
return new Iterator<Character>() {
private int cursor;
public boolean hasNext() {
return cursor < seq.length();
}
public Character next() {
return seq.charAt(cursor++);
}
public void remove() {
throw new UnsupportedOperationException("cannot remove from stream");
}
};
}
};
}
/* ... */
for (final char ch : iterable("qwertyuiop")) {
/* ... */
}
static final Iterable Iterable(final CharSequence seq){
返回新的Iterable(){
公共最终迭代器迭代器(){
返回新的迭代器(){
私有int游标;
公共布尔hasNext(){
返回游标
这里有一个更通用的形式
static final Iterable<Character> iterable(final CharSequence seq) {
return new Iterable<Character>() {
public final Iterator<Character> iterator() {
return new Iterator<Character>() {
private int cursor;
public boolean hasNext() {
return cursor < seq.length();
}
public Character next() {
return seq.charAt(cursor++);
}
public void remove() {
throw new UnsupportedOperationException("cannot remove from stream");
}
};
}
};
}
/* ... */
for (final char ch : iterable("qwertyuiop")) {
/* ... */
}
static final Iterable Iterable(final CharSequence seq){
返回新的Iterable(){
公共最终迭代器迭代器(){
返回新的迭代器(){
私有int游标;
公共布尔hasNext(){
返回游标
好吧,随你的便。。。如果您不介意使用:
Iterable BigAlphas=Chars.asList(“ABCDEFGHIJKLMNOPQRSTUVWXYZ.toCharArray());
好吧,随你的便。。。如果您不介意使用:
Iterable BigAlphas=Chars.asList(“ABCDEFGHIJKLMNOPQRSTUVWXYZ.toCharArray());
也许吧,但我需要直接翻译,所以我还需要toCharArray()代码>零件。我不会吗?解释一下你为什么需要直接翻译。例如,请参见@Peter's comment why why,这在Java中可能不是一个很好的习惯用法。我需要做一个直接翻译,因为客户现在需要一个用C#编写的程序。IMHO,最好的翻译是使用纯字符串。也许,但我需要做一个直接翻译,所以我还需要tocharray()代码>零件。我不会吗?解释一下你为什么需要直接翻译。例如,请参见@Peter's comment why why why that may not that great a idiom in Java。我需要做一个直接翻译,因为客户现在需要一个用C#编写的程序。IMHO,最好的翻译是使用纯字符串。你能举个例子说明你想用它做什么吗?在Java中,Iterable是不可重启的,所以将其设为静态不太可能有用?对其进行迭代并从中读取值?写信给它?改变它的长度?随机存取?与正则表达式匹配?好吧,这有点复杂,而且我对C完全是新手,但我在C中的功能是:publicstaticwildcardtype GetWildCardType(charc){switch(C){case'a':return WildCardType.LittleAlpha;}
@PeterLawrey不可重启?一个Iterable
只为您提供了一个迭代器,例如用于增强for循环。对不起,我把它读作迭代器。使用Iterable可以工作,但我怀疑这不是一个好主意。也就是说,使用字符串会简单得多。您能举一个例子说明您想用它做什么吗?在Java中,Iterable是not可重新启动,因此使其静态不太可能有用。您打算如何处理char[]?迭代它并从中读取值?写入它?更改它的长度?随机访问?匹配正则表达式?嗯,这有点复杂,而且我对C完全是新手,但我在C中的内容是:public static WildCardType GetWildCardType(char C){switch(C){case'a':return WildCardType.LittleAlpha;}
@PeterLawrey不可重启?一个Iterable
只为您提供了一个迭代器,例如用于增强for循环。抱歉,我将其理解为迭代器。使用Iterable可以工作,但我怀疑这不是一个好主意。例如,使用字符串会简单得多。