LintCode 655.大整数加法

描述:

以字符串的形式给出两个非负整数 num1 和num2,返回 num1 和 num2 的和。

  •  num1 和 num2 的长度都小于5100。
  •  num1 和 num2 都只包含数字 0-9。
  •  num1 和 num2 都不包含任何前导零。
  • 您不能使用任何内置的 BigInteger 库内的方法或直接将输入转换为整数。

样例:

输入:num1="123",num2="45"

输出:168

代码:

public String addStrings(String num1, String num2) {
        // write your code here
        int index1 = num1.length() - 1;
        int index2 = num2.length() - 1;
        String res = "";
        int carrier = 0;
        while(index1 >= 0 || index2 >= 0) {
            int temp1 = 0;
            int temp2 = 0;
            if (index1 >= 0) {
                temp1 = Integer.valueOf(num1.charAt(index1) + "");//charAt,返回指定索引处的字符,索引范围为0到length()-1。
                index1--;
            }
            if (index2 >= 0) {
                temp2 = Integer.valueOf(num2.charAt(index2) + "");//valueOf方法用于返回给定参数的原声Number对象值,参数可以是原生数据类型,String等。
                index2--;
            }
            res = (temp1 + temp2 + carrier) % 10 + res;
            carrier = (temp1 + temp2 + carrier) / 10;
        }
        return carrier == 0 ? res : carrier + res;     }

 Java charAt()方法:

 

charAt() 方法用于返回指定索引处的字符。索引范围为从 0 到 length() - 1。

语法

 

public char charAt(int index)

参数

  • index -- 字符的索引。

返回值

返回指定索引处的字符。

实例

public class Test {

    public static void main(String args[]) {
        String s = "www.runoob.com";
        char result = s.charAt(8);
        System.out.println(result);
    }
}

以上程序执行结果为:

o

Java valueOf()方法:

valueOf() 方法用于返回给定参数的原生 Number 对象值,参数可以是原生数据类型, String等。

该方法是静态方法。该方法可以接收两个参数一个是字符串,一个是基数。

语法

该方法有以下几种语法格式:

static Integer valueOf(int i)
static Integer valueOf(String s)
static Integer valueOf(String s, int radix)

参数

  • i -- Integer 对象的整数。

  • s -- Integer 对象的字符串。

  • radix --在解析字符串 s 时使用的基数,用于指定使用的进制数。

返回值

  • Integer valueOf(int i):返回一个表示指定的 int 值的 Integer 实例。

  • Integer valueOf(String s):返回保存指定的 String 的值的 Integer 对象。

  • Integer valueOf(String s, int radix): 返回一个 Integer 对象,该对象中保存了用第二个参数提供的基数进行解析时从指定的 String 中提取的值。

实例

public class Test{ 
public static void main(String args[]){
        Integer x =Integer.valueOf(9);
        Double c = Double.valueOf(5);
        Float a = Float.valueOf("80");               

        Integer b = Integer.valueOf("444",16);   // 使用 16 进制

        System.out.println(x); 
        System.out.println(c);
        System.out.println(a);
        System.out.println(b);
    }
}

编译以上程序,输出结果为:

9
5.0
80.0
1092
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值