import java.util.*;
/*请设计一个算法能够完成两个用字符串存储的整数进行相加操作,对非法输入则返回“error”;
* 用例:123 234
* 输出:357
* 用例123 asd
* 输出:error
* 输入:1234 12
* 输出:2434*/
public class stringadd { public static void main(String[] args){
Scanner cin = new Scanner(System.in);
String str = cin.nextLine();
String[] st = str.split(" ");
int[] result = new int[max(st[0],st[1])];
if(!isNumber(st[0])||!isNumber(st[1])){
System.out.print("error");
}else{
result = add(st[0],st[1]);
for(int i=0;i<result.length;i++){
System.out.print(result[i]);
} } }
public static int max(String a,String b){
if(a.length()>b.length()){
return a.length();
}else{
return b.length();
}
} public static int min(String a,String b){
if(a.length()>b.length()){
return b.length();
}else{
return a.length();
}
} public static int[] add(String a,String b){
int[] x = new int[max(a,b)];
int len = min(a,b);
String l = a;
if(a.length()<b.length()){
l=b;
}
for(int i=0;i<len;i++){
x[i]=(a.charAt(i)-48)+(b.charAt(i)-48);//0的ASCII值为48
}
for(int j=len;j<l.length();j++){
x[j]=l.charAt(j)-48;
}
return x;
}
public static boolean isNumber(String str){
for(int i=0;i<str.length();i++){
if(!Character.isDigit(str.charAt(i))){
return false;
}
}
return true;
};
}
/*字符1+字符2是ASCII值相加,是49+50,不是1+2*/

两个字符串,若为数字则都相加,若有一个不为数字则,输出error的更多相关文章

  1. 华为 2015 机试 输出:数字后面的连续出现的(2个或多个)相同字符(数字或者字符),删去一个,非数字后面的不要删除,例如,对应输出为:33aabb55pin。

    package 华为机试; //C++ 输入:由数字和字母组成的字符串,例如:333aaabb55ppin //输出:数字后面的连续出现的(2个或多个)相同字符(数字或者字符),删去一个,非数字后面的 ...

  2. 写一个函数,实现两个字符串的比较。即实现strcmp函数,s1=s2时返回0,s1!=s2时返回二者第一个不同字符的ASCII值。

    #include<stdio.h> #include<stdlib.h> int main(){ setvbuf(stdout,NULL,_IONBF,); ],s2[]; i ...

  3. ✡ leetcode 165. Compare Version Numbers 比较两个字符串数字的大小 --------- java

    Compare two version numbers version1 and version2.If version1 > version2 return 1, if version1 &l ...

  4. 常用正则表达式,你要的都在这里(校验字符,数字,特殊需求qq,电话等)

    一.校验数字的表达式 1 数字:^[0-9]*$ 2 n位的数字:^\d{n}$ 3 至少n位的数字:^\d{n,}$ 4 m-n位的数字:^\d{m,n}$ 5 零和非零开头的数字:^(0|[1-9 ...

  5. LeetCode - 字符串数字相乘与相加

    43. 字符串相乘 给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式. 示例 1: 输入: num1 = "2& ...

  6. shell比较两个字符串是否相等

    比较两个字符串是否相等的办法是: if [ "$test"x = "test"x ]; then这里的关键有几点:1 使用单个等号2 注意到等号两边各有一个空格 ...

  7. VC++ 比较两个字符串是否相等,字母大小写相关。

    1.strcmp 这是用于ANSI标准字符串的函数(如string和char *),此函数接受两个字符串缓冲区做为参数,如果两个字符串是相同的则返回零.否则若第一个传入的字符串的值大于第二个字符串返回 ...

  8. 【编程题目】有两个序列 a,b,大小都为 n,序列元素的值任意整数,无序;(需要回头仔细研究)

    32.(数组.规划)有两个序列 a,b,大小都为 n,序列元素的值任意整数,无序:要求:通过交换 a,b 中的元素,使[序列 a 元素的和]与[序列 b 元素的和]之间的差最小.例如: var a=[ ...

  9. ✡ leetcode 161. One Edit Distance 判断两个字符串是否是一步变换 --------- java

    Given two strings S and T, determine if they are both one edit distance apart. 给定两个字符串,判断他们是否是一步变换得到 ...

随机推荐

  1. 解析activity之间数据传递方法的详解

    转自:http://www.jb51.net/article/37227.htm 本篇文章是对activity之间数据传递的方法进行了详细的分析介绍,需要的朋友参考下     1  基于消息的通信机制 ...

  2. create a C# context menu from code

    I try the one of your approach, it works well in my computer. Below is my code: public void AddConte ...

  3. Loader for loading embedded assemblies z

    using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Ref ...

  4. Linux新手必看:浅谈如何学习linux

    本文在Creative Commons许可证下发布 一.起步 首先,应该为自己创造一个学习linux的环境--在电脑上装一个linux或unix问题1:版本的选择 北美用redhat,欧洲用SuSE, ...

  5. H5制作1--母亲节快乐

    H5作品现在很流行额. 早上起的很早.就自己试着去了解了一下.感觉很easy. 用了百度的H5在线制作工具.感觉很easy.顺便给百度做下推广吧.h5.baidu.com 于是就有了自己的第一个dem ...

  6. java 实现死锁

    package 线程安全的讨论; class DThread implements Runnable { private Object o1=null; private Object o2=null; ...

  7. ExtJs 5.0需要注意的问题

    1.在网上查找到的一些例子当中,存在new Ext.grid.ColumnModel()这样的操作,在5.0当中这是不允许的,在5.0当中这个已经被设置为私有方法,不允许用户调用,在5.0中我们不需要 ...

  8. bzoj 2815 [ZJOI2012]灾难(构造,树形DP)

    [题意] 求把每个点删除后,不可达点的数目. [思路] 构造一棵“灭绝树”,要求这棵树满足如果删除根节点后则该子树内的所有结点都不可达.则答案为子树大小-1. 如何构造这棵“灭绝树”? 将原图拓扑排序 ...

  9. cocos2d-x的helloLua例子函数名定义误导初学者

    初次研究cocos2d-x, cocos2d-x支持lua是一个很不错的功能,使用lua来开发有个最大的好处就是不用每次改了游戏代码都编译,大多数情况下改了脚本直接运行程序就可以了,发布更新时也不用更 ...

  10. HW6.14

    import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner i ...