我可以遍历字母表,但我试图保留最后一次迭代并添加下一个字母。 这是我的代码。
for(char alphabet = 'a'; alphabet <='z'; alphabet ++ )
{
System.out.println(alphabet);
}
我希望它能打印出这样的东西。
一
AB
ABC
ABCD
abcde .....等等。这怎么可能?
答案 0 :(得分:6)
您需要将char alphabet
添加到字符串中。
String output = "";
for(char alphabet = 'a'; alphabet <='z'; alphabet++ )
{
output += alphabet;
System.out.println(output);
}
这对你有用;)
答案 1 :(得分:4)
我将使用StringBuffer或StringBuilder。类似的东西:
StringBuffer
StringBuffer sb = new StringBuffer();
for (char alphabet = 'a'; alphabet <= 'z'; alphabet++) {
sb.append(alphabet);
System.out.println(sb.toString());
}
StringBuilder
StringBuilder sb = new StringBuilder();
for (char alphabet = 'a'; alphabet <= 'z'; alphabet++) {
sb.append(alphabet);
System.out.println(sb.toString());
}
String vs StringBuffer vs StringBuilder :
字符串:它是不可变的,所以当你对字符串进行任何修改时,它会创建新的实例并且会过快地占用内存。
StringBuffer :您可以使用它来创建动态字符串,同时只有1个对象,因此将使用更少的内存。它是同步的(这使它变慢)。
StringBuilder :它类似于StringBuffer。 olny的区别在于:它不同步,因此更快。
因此,更好的选择是 StringBuilder 。 Read more
使用Java 8
StringBuilder sb = new StringBuilder();
IntStream.range('a', 'z').forEach(i -> {
sb.append((char) i);
System.out.println(sb.toString());
});
答案 2 :(得分:2)
我建议使用StringBuilder
:
// Using StringBuilder
StringBuilder buf = new StringBuilder();
for (char c = 'a'; c <= 'z'; c++)
System.out.println(buf.append(c).toString());
使用char[]
也可以稍快一点,但StringBuilder
更明显且更易于使用:
// Using char[]
char[] arr = new char[26];
for (int i = 0; i < 26; i++) {
arr[i] = (char)('a' + i);
System.out.println(new String(arr, 0, i + 1));
}
您不应使用的替代品:
StringBuffer
:与StringBuilder
相同,但同步,速度慢。s = s.concat(new String(c))
:每次迭代分配2个字符串,而不是仅1个。s += c
:内部+=
被编译为s = new StringBuilder().append(s).append(c).toString()
,因此指数响应时间非常慢。答案 3 :(得分:0)
String s = "" ;
for(char alphabet = 'a'; alphabet <='z'; alphabet ++ )
{
s = s.concat(String.valueOf(alphabet));
System.out.println(s);
}
答案 4 :(得分:0)
Offtopic,使用Java 8
IntStream就像这样简单:
StringBuilder builder = new StringBuilder("");
"abcdefghijklmnopqrstuvwxyz".chars().mapToObj(i -> builder.append((char) i))
.forEach(System.out::println);
<强>用法:强>
public class AlphabetsLooping {
static final String input = "abcdefghijklmnopqrstuvwxyz";
public static void main(String[] args) {
StringBuilder builder = new StringBuilder("");
input.chars().mapToObj(i -> builder.append((char) i))
.forEach(System.out::println);
}
}