【发布时间】:2021-08-21 13:27:47
【问题描述】:
我正在尝试通过交替字母大小写来打印出一个字符串。我希望YourString 以YoUrStRiNg 的形式出现。我已经尝试了三件事,但我无法让循环按照我需要的方式工作。到目前为止,这是我所拥有的:
//one attempt
String s = "yourString";
String x = "";
for (int i = 0; i < s.length(); i += 2) {
for (int j = 1; j < s.length(); j += 2) {
x += Character.toUpperCase(s.charAt(i));
x += Character.toLowerCase(s.charAt(j));
}
}
System.out.println(x);
//the desired result but not the ideal solution
String[] sArray = {"Your", "String"};
String f = "";
for (String n : sArray) {
f += n;
}
char[] c = f.toUpperCase().toCharArray();
char[] d = f.toLowerCase().toCharArray();
System.out.print(c[0]);
System.out.print(d[1]);
System.out.print(c[2]);
System.out.print(d[3]);
System.out.print(c[4]);
System.out.print(d[5]);
System.out.print(c[6]);
System.out.print(d[7]);
System.out.print(c[8]);
System.out.print(d[9]);
System.out.println();
//third attempt with loop but the first loop keeps starting from zero
String t = "";
for (int i = 0; i < c.length; i += 2) {
for (int j = 1; j < d.length; j += 2) {
t += Character.toUpperCase(c[i]);
t += Character.toLowerCase(d[j]);
}
System.out.print(t);
}
我做错了什么?
【问题讨论】:
-
我不想破坏完整的答案,因为这可能是一些编程任务。所以你应该只迭代字符串一次,如果一个字符是大写的,你应该把它变成小写,反之亦然。像docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/… 这样的函数可能会很方便。
-
@Sebi 目标不是交换现有案例,而是根据位置交替。
-
也不想破坏答案,遍历字符串字符并使用
i % 2 == 0 ? Character.toUpperCase(text.charAt(i)) : Character.toLowerCase(text.charAt(i))之类的东西来决定要做什么。
标签: java arrays string loops char