当前位置: 首页 > article >正文

字符串加法

输入两个字符串a和b,字符串内容为二进制数字,求两个字符串相加的结果,加法计算方法以二进制方式计算,并返回对应的字符串结果。

示例如下:
/**  

* @param a = "1101"  

* @param b = "1100"  

* @return "11001"  

*/ 
public String add(String a, String b){
}
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        //读入两个字符串
        String s1 = sc.next();
        String s2 = sc.next();
        //将两个字符串反转
        StringBuilder sb1 = new StringBuilder(s1);
        StringBuilder sb2 = new StringBuilder(s2);
        sb1.reverse();
        sb2.reverse();
        //求两个字符串的最大长度
        int len = Math.max(sb1.length(), sb2.length());
        StringBuilder sb = new StringBuilder();//结果字符串
        boolean flag = false;//进位
        for (int i = 0; i < len; i++) {
            char c1 = i < sb1.length() ? sb1.charAt(i) : '0';
            char c2 = i < sb2.length() ? sb2.charAt(i) : '0';
            if (c1 == '0' && c2 == '0') {
                if (flag) {
                    sb.append('1');
                } else {
                    sb.append('0');
                }
                flag = false;
            } else if (c1 == '0' && c2 == '1') {
                if (flag) {
                    sb.append('0');
                    flag = true;
                } else {
                    sb.append('1');
                    flag = false;
                }
            } else if (c1 == '1' && c2 == '0') {
                if (flag) {
                    sb.append('0');
                    flag = true;
                } else {
                    sb.append('1');
                    flag = false;
                }
            } else {
                //c1 == '1' && c2 == '1'
                if (flag) {
                    sb.append('1');
                } else {
                    sb.append('0');
                }
                flag = true;
            }
        }
        if (flag) {
            sb.append('1');
        }
        //输出结果字符串
        System.out.println(sb.reverse().toString());
    }
}

http://www.kler.cn/a/402452.html

相关文章:

  • 鱼眼相机模型-MEI
  • Java面试之多线程并发篇
  • 深入浅出:JVM 的架构与运行机制
  • 使用POLL函数实现聊天室
  • Centos-stream 9,10 add repo
  • 三十一、构建完善微服务——API 网关
  • 用jquery做一个websocket客户端
  • 一.安装版本为19c的Oracle数据库管理系统(Oracle系列)
  • Huggingface load_dataset加载本地数据集
  • 01 P1048 [NOIP2005 普及组] 采药
  • 02 P1734 最大约数和
  • 梧桐数据库加密算法支持与实践应用
  • 印刷物料学习Ⅰ~
  • 【Vue3组件通信方法】
  • elment-ui的折叠tree表单实现纯前端搜索,展开收起功能
  • 【C++习题】5.验证一个字符串是否是回文
  • 详解模版类pair
  • go channel中的 close注意事项 range取数据
  • MySQL数据库4——数据库设计
  • 基于YOLOv8深度学习的医学影像阿尔兹海默症检测诊断系统研究与实现(PyQt5界面+数据集+训练代码)
  • 【设计模式】行为型模式(四):备忘录模式、中介者模式
  • javaweb学习——Day2
  • 原生鸿蒙中实现RN热加载的详细步骤
  • gin源码阅读(2)请求体中的JSON参数是如何解析的?
  • 科技赋能-JAVA发票查验接口、智能、高效的代名词
  • 【springboot】配置文件加载顺序