位置互换 | 函数的值传递&引用传递 | 卡码网

时间限制: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里,基本型使用值传递,对象(包括数组)使用引用传递.

        值传递:仅仅传递数值,不改变原始变量的值.比如函数传参,函数里的参数值变了,原来的变量值没变.

        引用传递:传递过去的值要是变了,原始数据跟着一起变.

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值