A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

求思路和分析

给定两个字符串参数a和b,创建一个更大的字符串,由a的第一个字符,b的第一个字符,
a的第二个字符,b的第二个字符等组成。 任何剩余的字符在结果的末尾。
例如:"abc"和"xyz"返回的是:"axbycz"."
"xxxx","There")
"xTxhxexre"

24 个回复

正序浏览
晴天Neal 发表于 2017-5-7 10:47
对的,StringBuilder的拼接,可以对任何类型的数值拼接,int,char,String都可以,而且节省内存 ...

嗯,理解了.谢谢你
回复 使用道具 举报
yourtear 发表于 2017-5-6 14:40
/*给定两个字符串参数a和b,创建一个更大的字符串,由a的第一个字符,b的第一个字符,
                a的第二个字符,b ...

这种思路,我还真理解了半天才想明白.不过确实是个好方法.谢谢你.
回复 使用道具 举报
13716326405 发表于 2017-5-4 21:22
假设,只给了s1和s2两个参数,并没有给他们赋值,然后自己做一个方法出来.
for (int i = 0; i ...

对的,StringBuilder的拼接,可以对任何类型的数值拼接,int,char,String都可以,而且节省内存
回复 使用道具 举报
/*给定两个字符串参数a和b,创建一个更大的字符串,由a的第一个字符,b的第一个字符,
                a的第二个字符,b的第二个字符等组成。 任何剩余的字符在结果的末尾。
                例如:"abc"和"xyz"返回的是:"axbycz"."
*/
                //创建键盘录入对象
                Scanner sc = new Scanner(System.in);
               
                //接收数据
                System.out.println("请输入第一个字符串");
                String s1 = sc.nextLine();
                System.out.println("请输入第二个字符串");
                String s2 = sc.nextLine();
               
                //定义字符串缓冲流
                StringBuilder sb = new StringBuilder();
               
               
               
                //定义变量初始化值
                int x = 0;
                                        //例如 字符长度  3        字符长度  4    满足其中条件  不满足结束
                while (x<s1.length() || x<s2.length()) { //例如输入的字符串: a  b c    x y z n
                       
                            // x< 3
                        if (x<s1.length()) {
                                sb.append(s1.charAt(x));   //满足条件 添加 a b c 不满足结束
                        }                // x<4                                                //a + x + b + y + c + z + n
                        if (x<s2.length()) {                         
                                sb.append(s2.charAt(x)); //满足条件  添加 x y z n 不满足结束
                        }
                        x++;
                }
                //打印输出
                System.out.println(sb);
               
                       
               
               
               
       
               
               
               
               
       
               
               
               
        }

}

还在基础班小菜鸡写的,应该容易理解点.
回复 使用道具 举报
晴天Neal 发表于 2017-5-4 19:15
package com.itheima;
/*给定两个字符串参数a和b,创建一个更大的字符串,由a的第一个字符,b的第一个字符 ...

假设,只给了s1和s2两个参数,并没有给他们赋值,然后自己做一个方法出来.
for (int i = 0; i<s1.length();i++){
                         sb1.append(s1.charAt(i));
                         sb1.append(s2.charAt(i));
请问这个代码,是在实现他们交叉拼接的,是吧?
回复 使用道具 举报
package com.itheima;
/*给定两个字符串参数a和b,创建一个更大的字符串,由a的第一个字符,b的第一个字符,
a的第二个字符,b的第二个字符等组成。 任何剩余的字符在结果的末尾。
例如:"abc"和"xyz"返回的是:"axbycz"."*/

public class Test1 {
        public static void main(String[] args) {
                String s1 = "abc";
                String s2 = "xyzttt";
                StringBuilder sb1 = new StringBuilder();
               
                for (int i = 0; i<s1.length();i++){
                        sb1.append(s1.charAt(i));
                        sb1.append(s2.charAt(i));
                }
                if(s2.length()-s1.length()>0){
                        for(int i = s1.length();i<s2.length();i++){
                                sb1.append(s2.charAt(i));
                        }
                }
               
                System.out.println(sb1);
        }
}
回复 使用道具 举报
unscdf117 发表于 2017-5-3 10:49
天呐 你很66 这个貌似不是你要担心的问题 哥们不要走偏

?什么意思
回复 使用道具 举报
天呐 你很66 这个貌似不是你要担心的问题 哥们不要走偏
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
newu 黑马帝 2017-5-3 08:52:42
17#
楼主威武,强烈支持……
回复 使用道具 举报
654788808 发表于 2017-5-2 22:14
public class Demo {
        public static void main(String[] args) {
                String a = "abc ...

谢谢帮助,我认真学习一下
回复 使用道具 举报
654788808 发表于 2017-5-2 22:14
package dome;

public class dome {

老鸽稳稳地
回复 使用道具 举报
本帖最后由 654788808 于 2017-5-2 23:17 编辑

public class Demo {
        public static void main(String[] args) {
                String a = "abcdef";
                String b = "123";  //调用静态方法,并打印返回结果              
                System.out.println(sumAB(a,b));
        }
//定义静态方法,需要参数为两个字符串,返回结构为字符串形式
        public static String sumAB(String a , String b){
//定义空串,接收每次循环的结果
                String ab = "";
//循环遍历长度较短的字符串,其中任意一个为空串,此循环会被跳过
                for(int i = 0; i<a.length()&&i<b.length();i++){
                        ab = ab+a.charAt(i)+b.charAt(i);
                }
                int len = ab.length()/2;
//累加上剩下的字符串               
                return ab+a.substring(len)+b.substring(len);
        }
}

回复 使用道具 举报
同时遍历俩个字符串,然后相加即可
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
hongyu2017 发表于 2017-5-2 11:22
字符数组自定方法或集合算法

谢谢帮助
回复 使用道具 举报
星尘起航 发表于 2017-5-2 09:57
//定义一个大串用来接收新的字符串,可以用SB来做
String c=“”;
//先比较两字符串的长度

谢谢帮助,我看看
回复 使用道具 举报
字符数组自定方法或集合算法
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
//定义一个大串用来接收新的字符串,可以用SB来做
String c=“”;
//先比较两字符串的长度
if(a.length()≥b.length()){
//把大串放b里面方便操作
String temp =a;
a=b;
b=temp;
}
//遍历大串
for (int i=0;i<b.length();i++){
//
       if(i<a.length()){
            c += a.charAt(i)+b.charAt(i);
       }else{
             c+=b.chatAt(i);
        }
}

来自宇宙超级黑马专属安卓客户端来自宇宙超级黑马专属安卓客户端
回复 使用道具 举报
IceLoveInFire丶 发表于 2017-5-2 03:04
有什么难的,循环嵌套遍历两个字符串就可以了啊

循环遍历那不是axyzbxyzcxyz,不符合要求
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报

请不要逗我玩,说出禅语我需要足够的智商
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马