关于字符串实现交叉合并字符串

本文介绍了一种交叉合并字符串的方法,并提供了Java与JavaScript两种实现方式。该算法将两个字符串按字符交叉合并,适用于相同或不同长度的字符串。

交叉合并:如字符串一为:abcd  字符串二为:1234
则结果为:a1b2c3d4

复制代码
 1 import java.util.ArrayList;
 2 import java.util.List;
 3 
 4 public class A {
 5     public static void main(String[] args) {
 6         String a[] ={"a","b","c"};
 7         String b[] ={"1","2","3"};
 8         CombineTwoArray(a, b);
 9         System.out.println(CombineTwoArray(a, b));
10     }
11 
12     public static List<String> CombineTwoArray(String[] first, String[] second) {
13         List<String> outlist = new ArrayList<String>();
14         int index = 0;
15         while (index < first.length && index < second.length) {
16             outlist.add(first[index]);
17             outlist.add(second[index]);
18             ++index;
19         }
20         if (index >= first.length) {
21             for (int i = index; i < second.length; i++) {
22                 outlist.add(second[i]);
23             }
24         } else {
25             for (int i = index; i < first.length; i++) {
26                 outlist.add(first[i]);
27             }
28         }
29         return outlist;
30     }
31 }
复制代码

用js的写法:

复制代码
 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 <html xmlns="http://www.w3.org/1999/xhtml">
 3   <head>    
 4     <title>第十五题:交叉合并字符串</title>
 5     <style>
 6         #form{
 7             margin: 0 auto;
 8             width:500px;
 9             top:100px;
10             height:300px;
11         }
12     </style>
13     <script type="text/javascript">
14         var reg = "^[A-Za-z0-9]+$";
15         function check(){
16             var str1 =document.all.str1.value;
17             var str2 =document.all.str2.value;
18             if(str1==""){
19                 alert("字符串一不允许为空!");
20                 document.all.str1.focus();
21                 return;
22             }else if(!/^[A-Za-z0-9]+$/.test(str1)){
23                 alert("字符串一只能是数字和字母的组合");
24                 document.all.str1.focus();
25                 return;
26             }else if(str2==""){
27                 alert("字符串二不允许为空!");
28                 document.all.str2.focus();
29                 return;
30             }else if(!/^[A-Za-z0-9]+$/.test(str2)){
31                 alert("字符串二只能是数字和字母的组合");
32                 document.all.str2.focus();
33                 return;
34             }
35             var string="";
36             var font1 = "<font style='color:red;'>";
37             var font2 = "<font style='color:blue;'>";
38             var fontend = "</font>";
39             if(str1.length>=str2.length){
40                 for(var i =0;i<str1.length;i++){
41                     if(i< str2.length){
42                         string += font1+str1[i]+fontend+ font2+ str2[i]+fontend;
43                     }else{
44                         string += font1+str1[i];
45                     }
46                      
47                 }
48             }else{
49                 for(var i =0;i<str2.length;i++){
50                     if(i< str1.length){
51                         string += font1+str1[i]+fontend + font2+str2[i]+fontend;
52                     }else{
53                         string += font2+str2[i]+fontend;
54                     }
55                      
56                 }
57             }
58             document.all.result.innerHTML = string;
59         }
60     </script>
61   </head>
62    
63   <body>
64         <div id="form">
65                 <center><h2>第十五题:交叉合并字符串</h2></center>
66                 字符串1:<input type="text" id="str1"/><br/>
67                 字符串2:<input type="text" id="str2"/><br/>
68                 <input type="button" value="交叉合并字符串" onclick="check();"/>
69                 <br />
70                 <div id="result"></div>
71         </div>
72          
73   </body>
74 </html>
复制代码

 



本文转自SummerChill博客园博客,原文链接:http://www.cnblogs.com/DreamDrive/p/4094416.html,如需转载请自行联系原作者
### 回答1: 可以尝试以下代码实现字符串交叉合并: ```python def merge_strings(str1, str2): merged_str = '' for i in range(max(len(str1), len(str2))): if i < len(str1): merged_str += str1[i] if i < len(str2): merged_str += str2[i] return merged_str # 示例 str1 = 'abc' str2 = '123' print(merge_strings(str1, str2)) # 输出:a1b2c3 ``` 代码中的 `merge_strings` 函数接收两个字符串 `str1` 和 `str2`,然后将两个字符串交叉合并成一个新的字符串 `merged_str` 并返回。具体实现是通过循环遍历两个字符串中较长的一个,将每个位置上的字符依次加入 `merged_str` 中,并在每次加入字符时判断该位置是否越界。例如,在上面的示例中,循环遍历到第 3 个位置时,`str1` 已经遍历完了,因此只会将 `str2` 中的字符加入到 `merged_str` 中。 ### 回答2: Python中,可以使用字符串的索引和切片操作实现字符串交叉合并。 例如,给定字符串s1和s2,我们可以先将s1和s2分别存储在两个变量中: s1 = "abcde" s2 = "12345" 然后,使用for循环遍历其中一个字符串的索引,并使用切片操作将两个字符串交叉合并到一个新的字符串中: merged = "" for i in range(len(s1)): merged += s1[i] + s2[i] 最后,打印出结果merged的值,即可以得到字符串交叉合并结果: print(merged) 输出结果为:"a1b2c3d4e5" 这段代码使用了一个for循环,循环次数为字符串s1的长度(或者字符串s2的长度,因为它们长度相同)。在每次循环中,我们使用索引i获取字符串s1和s2中相应位置的字符,并通过字符串的加法运算符将它们合并到新的字符串merged中。 需要注意的是,以上的代码假设了s1和s2的长度相等,如果它们的长度不同,那么在使用索引和切片操作时可能会出现IndexError异常。在这种情况下,我们需要根据实际情况进行额外的处理,以确保能够正确地完成字符串交叉合并。 ### 回答3: Python字符串交叉合并是指将两个字符串交叉合并生成一个新的字符串。下面是一个实现字符串交叉合并的例子: ```python def merge_strings(str1, str2): merged_string = '' len1 = len(str1) len2 = len(str2) max_len = max(len1, len2) for i in range(max_len): if i < len1: merged_string += str1[i] if i < len2: merged_string += str2[i] return merged_string str1 = 'abc' str2 = '1234' merged = merge_strings(str1, str2) print(merged) ``` 这个例子中,我们定义了一个名为`merge_strings`的函数,接受两个字符串`str1`和`str2`作为参数。我们首先获取两个字符串的长度,然后通过循环,每次将`str1`和`str2`中对应位置的字符依次加入到`merged_string`中。最后返回合并后的字符串。 以上代码将会输出`a1b2c34`,这就是将字符串`abc`和`1234`交叉合并后的结果。 这种方法可以用于合并两个字符串,无论长度是否相等。如果其中一个字符串比另一个短,那么合并后的字符串中较长字符串的剩余部分将会被直接追加到最后。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值