时间限制:1.000S 空间限制:32MB
题目描述
给定一个长度为偶数位的字符串,请编程实现字符串的奇偶位互换。
输入描述
输入包含多组测试数据。
输入的第一行是一个整数n,表示有测试数据。(整个输入中,只有一个n)
接下来是n组测试数据,保证串长为偶数位(串长<=50)。
输出描述
请为每组测试数据输出奇偶位互换后的结果,每组输出占一行。
输入示例
2
0aa0
bb00
输出示例
a00a
bb00
题解:
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int n = sc.nextInt(); //行数n
sc.nextLine(); //吸收回车
for(int count_1 =0;count_1 < n;count_1++){
String line_1 = sc.nextLine();
char[] line_2 = line_1.toCharArray(); //line_1转换为char数组
for(int count_2 =0; count_2 < line_2.length - 1; count_2+=2){ //记得是count_2+=2,而不是count_2++,而且结束条件记得length - 1而不是length
swap(line_2,count_2,count_2+1);
}
System.out.println(line_2);
}
}
private static void swap(char[] chars, int i, int j){
char tmp = chars[j];
chars[j] = chars[i];
chars[i] = tmp;
}
}
心得:
① java里,基本型使用值传递,对象(包括数组)使用引用传递.
值传递:仅仅传递数值,不改变原始变量的值.比如函数传参,函数里的参数值变了,原来的变量值没变.
引用传递:传递过去的值要是变了,原始数据跟着一起变.