程序设计题:
1.写一个程序,实现字符串翻转.
例如源字符串“I am a student" 转换后 "student a am I"。
public class StringReverse {
public void swap(char[] arr, int begin, int end) {
while(begin < end) {
char temp = arr[begin];
arr[begin] = arr[end];
arr[end] = temp;
begin++;
end--;
}
}
public String swapWords(String str) {
char[] arr = str.toCharArray();
swap(arr, 0, arr.length - 1);
int begin = 0;
for (int i = 1; i < arr.length; i++) {
if (arr[i] == ' ') {
swap(arr, begin, i - 1);
begin = i + 1;
}
}
swap(arr, begin, arr.length - 1);
return new String(arr);
}
public static void main(String[] args) {
String str = "I";
System.out.println(new StringReverse().swapWords(str));
}
}
另解:
public static void a(String a) {
StringBuilder sb = new StringBuilder();
// char[] array = a.toCharArray();
// for (char c : array) {
// sb.insert(0, c);
// }
String[] array2 = a.split(" ");
for (String c : array2) {
sb.insert(0, c + " ");
}
System.out.println(sb.deleteCharAt(sb.length() - 1));
}
2.写一个程序,输出所有由1,2,3,4四个数字组成,互不相同且无重复数字的三位数。
public class ex7 {
public static void main(String[] args) {
int i = 0;
int j = 0;
int k = 0;
int t = 0;
for (i = 1; i <= 4; i++)
for (j = 1; j <= 4; j++)
for (k = 1; k <= 4; k++)
if (i != j && j != k && i != k) {
t += 1;
System.out.println(i * 100 + j * 10 + k);
}
System.out.println(t);
}
}