栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

用异或(^)运算符实现字符串的反转-java语言实现

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

用异或(^)运算符实现字符串的反转-java语言实现

用异或运算符实现字符串的反转-java语言实现 一、异或运算符概念的介绍

异或运算符:^

异或运算符的原理如下:

1^0=1 true^false = true

0^0=0 false^false = false

1^1=1 true^ true = false

也就是说异或运算只有异或元素之间不同 结果才为真。

离散数学里有介绍:
  1. 交换律:A ^ B = B ^ A;
  2. 结合律:A ^ (B ^ C) = (A ^ B) ^ C;
  3. 恒等律:X ^ 0 = X;
  4. 归零律:X ^ X = 0;
  5. 自反:A ^ B ^ B = A ^ 0 = A;
  6. 对于任意的 X: X ^ (-1) = ~X;
  7. 如果 A ^ B = C 成立,那么 A ^ C = B,B ^ C = A;
二、代码实现字符串的反转:
package com.summer01;

public class StringTest01 {
    public static void main(String[] args) {
        //主方法中对函数进行测试。
        String a = new String("abcdefghig");
        System.out.println("字符串反转前:"+a);
        StringTest01 stringTest01 = new StringTest01();
        //调用下面写的字符串反转函数,并打印输出。
        System.out.println("字符串反转后:"+stringTest01.reversesre(a));

    }
//写的实现字符串实现反转的方法。需要传递一个参数。
    public String reversesre(String str) {
        //讲字符串转化为char类型数组
        char[] chars = str.toCharArray();
//        定义char数组第0个索引值赋值给star
        int star = 0;
//        定义char数组最后一个索引值赋值给end
        int end = chars.length - 1;
//        当char数组前半部分元素的索引小于后半部分时候,进行元素的交换
        while (star < end) {
            //使用异或交换元素 底层实际是二进制码之间的异或运算
            chars[star] ^= chars[end];
            chars[end] ^= chars[star];
            chars[star] ^= chars[end];
            star++;
            end--;
        }


        return new String(chars);
    }

}

运行结果截图如下:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/962602.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号