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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 13716326405   /  2017-5-2 01:26  /  3322 人查看  /  24 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

晴天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));
请问这个代码,是在实现他们交叉拼接的,是吧?
回复 使用道具 举报
/*给定两个字符串参数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);
               
                       
               
               
               
       
               
               
               
               
       
               
               
               
        }

}

还在基础班小菜鸡写的,应该容易理解点.
回复 使用道具 举报
13716326405 发表于 2017-5-4 21:22
假设,只给了s1和s2两个参数,并没有给他们赋值,然后自己做一个方法出来.
for (int i = 0; i ...

对的,StringBuilder的拼接,可以对任何类型的数值拼接,int,char,String都可以,而且节省内存
回复 使用道具 举报
yourtear 发表于 2017-5-6 14:40
/*给定两个字符串参数a和b,创建一个更大的字符串,由a的第一个字符,b的第一个字符,
                a的第二个字符,b ...

这种思路,我还真理解了半天才想明白.不过确实是个好方法.谢谢你.
回复 使用道具 举报
晴天Neal 发表于 2017-5-7 10:47
对的,StringBuilder的拼接,可以对任何类型的数值拼接,int,char,String都可以,而且节省内存 ...

嗯,理解了.谢谢你
回复 使用道具 举报
12
您需要登录后才可以回帖 登录 | 加入黑马