[英]Java Equivalent of IEnumerable<char>
This is the C# code that I have to convert: 这是我必须转换的C#代码:
static readonly IEnumerable<char> BigAlphas = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".ToCharArray();
So far I've tried the following: 到目前为止,我已经尝试了以下方法:
static final Iterable<Character> BigAlphas = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".toCharArray();
This gives me the error: 这给了我错误:
incompatible types
不兼容的类型
required: java.lang.Iterable
必需:java.lang.Iterable
found: char[]
找到:char []
I know I'm getting this error because I'm trying to set an Iterable<Character>
to a char array
but I'm not sure what else can be done to translate it. 我知道我收到此错误,因为我正在尝试将
Iterable<Character>
设置为char array
但是我不确定还可以做什么来对其进行转换。
Would a simple String work? 简单的String可以工作吗?
static final String BigAlphas = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
String implements CharSequence, which seems to be what you need, and it also has loads of methods to check membership and such. 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");
}
};
}
};
}
Usage: 用法:
for (final char ch : alphabet()) {
/* ch in interval [A,Z] */
}
Here's a more generic form. 这是一种更通用的形式。
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")) {
/* ... */
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.