精华内容
下载资源
问答
  • 1.实现以下2个接口 不能使用语言的基本分割组合函数(如 ... 1) 字符串拆分成数组,如"ab&&2"通过"&&"做分割符,分割得到字符串数组["ab", "2"] 2) 实现字符串组合,如["ab","2"]通过"&&"分隔符,组成字符串"ab&&2

    将字符串拆分成数组和实现字符串组合
    不能使用语言的基本分割组合函数(如 Java 的 String.split, php 的 explode 和 implode)
    1) 字符串拆分成字符串数组,如"ab&&2"通过"&&“做分割符,分割得到字符串数组[“ab”, “2”]
    2) 实现字符串组合,如[“ab”, “2”]通过”&&“分隔符,组成字符串"ab&&2”

    1.字符串拆分成数组,如"ab&&2"通过"&&"做分割符,分割得到字符串数组[“ab”, “2”]

    	解题思路:
    	可以先将字符串拆分成一个字符数组,
    	遍历字符数组通过查找 "&&" 这个分割符来做分割处,找到其下标,
    	定义一个字符串数组来储存分割出来的字符串
    

    2.实现字符串组合,如[“ab”, “2”]通过"&&“分隔符,组成字符串"ab&&2”

     	解题思路:
    	想要把一个字符串数组 组合成一个字符串
    	以["ab", "2"]为例 可以通过去掉开头的[" 和结尾的 "]然后把 ", "转换成 &&符号的方法完成
    
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Scanner;import java.util.ArrayList;
    import java.util.List;
    import java.util.Scanner;
    public class Test01 {
    static Scanner sc = new Scanner(System.in);
    	public static void main(String[] args) {
    		test01();
    		test02();
    	}
    	//字符串拆分成数组,如"ab&&2"通过"&&"做分割符,分割得到字符串数组["ab", "2"]
    	public static void test01() {
    		// 输入一个字符串
    		String str = sc.nextLine();
    		// 定义一个字符串数组,储存分割得到的字符串
    		List<String> list = new ArrayList<String>();
    		// 输入的字符串的长度
    		int len = str.length();
    		// 把字符串拆分成字符数组
    		char[] ch = str.toCharArray();
    		int temp = 0;
    		for (int i = 0; i < len - 1; i++) {
    			// 查看是否出现分割符&&
    			if (ch[i] == '&' && ch[i + 1] == '&') {
    				list.add("\"" + str.substring(temp, i) + "\"");
    				i += 2;
    				temp = i;
    			}
    			// 查看是否最后出现了分割符&&没有就继续分割这个字符串
    			if ((i == len - 1 || i == len - 2) && (ch[i - 1] != '&' || ch[i] != '&')) {
    				list.add("\"" + str.substring(temp, len) + "\"");
    			}
    		}
    		// 输出这个字符数组
    		System.out.println(list.toString());
    
    	}
    
    	// 实现字符串组合,如["ab", "2"]通过"&&"分隔符,组成字符串"ab&&2"
    	public static void test02() {
    		// 输入这个字符串数组
    		String sList = sc.nextLine();
    		// System.out.println(sList);
    		// 同样将这个字符串拆分成拆分成一个字符数组
    		char[] ch = sList.toCharArray();
    		// 定义一个字符串缓冲类,通过字符串的拼接来组合成一个新的字符串。
    		StringBuffer sBuffer = new StringBuffer();
    		for (int i = 2; i < sList.length() - 2; i++) {
    			//字符串拼接
    			sBuffer.append(ch[i]);
    			//查找两个字符串的连接处 ", "
    			if (i < (sList.length() - 5) && ch[i + 1] == '\"' && ch[i + 2] == ',' && ch[i + 3] == ' '
    					&& ch[i + 4] == '\"') {
    				sBuffer.append("&&");
    				i += 4;
    			}
    		}
    		//输出这个重新组合成的字符串
    		System.out.println(sBuffer.toString());
    	}
    }
    
    展开全文
  • 根据固定字符串生成固定长度的有序字符串组合集,这里是根据固定长度字符串(如:8位长度),生成至少3位长度的有序字符串组合集合,下面看实例: import java.util.HashSet; import java.util.Set; /** * @...

    根据固定字符串生成固定长度的有序字符串组合集,这里是根据固定长度字符串(如:8位长度),生成至少3位长度的有序字符串组合集合,下面看实例:

    import java.util.HashSet;
    import java.util.Set;
    
    /**
     * @author 
     * @Description:根据固定字符串生成固定长度的有序字符串组合集
     * @date 2019年01月15日 12:08
     */
    public class StringCutMethod {
        public static String cutString(String plateNo) {
            plateNo = plateNo.toUpperCase();
            if (null == plateNo || plateNo.isEmpty()) {
                return null;
            }
            //自定义去掉第一个字符,剩下的字符串进行有序组合
            String secondString = plateNo.substring(1);
            int len = secondString.length();
            Set<String> set = new HashSet<>();
            // 3个字符
            for (int i = 0; i <= len - 3; i++) {
                set.add(secondString.substring(i, i + 3));
            }
    
            // 4个字符
            for (int i = 0; i <= len - 4; i++) {
                set.add(secondString.substring(i, i + 4));
            }
    
            // 5个字符
            for (int i = 0; i <= len - 5; i++) {
                set.add(secondString.substring(i, i + 5));
            }
    
            // 6个字符
            for (int i = 0; i <= len - 6; i++) {
                set.add(secondString.substring(i, i + 6));
            }
    
            // 特殊需求:去掉字母,再次进行有序组合
            /*StringBuilder nums = new StringBuilder();
            for (int i = 0; i < secondString.length(); i++) {
                char tmp = secondString.charAt(i);
                if (tmp >= 'A' && tmp <= 'Z') {
                    continue;
                }
                nums.append(tmp);
            }
            if (nums.length() >= 3) {
                secondString = nums.toString();
                len = secondString.length();
                // 3个字符
                for (int i = 0; i <= len - 3; i++) {
                    set.add(secondString.substring(i, i + 3));
                }
    
                //4个字符
                for (int i = 0; i <= len - 4; i++) {
                    set.add(secondString.substring(i, i + 4));
                }
    
                //5个字符
                for (int i = 0; i <= len - 5; i++) {
                    set.add(secondString.substring(i, i + 5));
                }
    
                // 6个字符(新能源车牌)
                for (int i = 0; i <= len - 6; i++) {
                    set.add(secondString.substring(i, i + 6));
                }
            }*/
    
            //组合成以,隔开的字符串返回
            StringBuilder out = new StringBuilder();
            int num = 0;
            for (String word : set) {
                num++;
                if (num == 1) {
                    out.append(word);
                } else {
                    out.append("," + word);
                }
            }
    
            return out.toString();
        }
    
        public static void main(String[] args) {
            System.out.println(cutString("沪A2K099"));
            System.out.println(cutString("学999999"));
            System.out.println(cutString("鄂A666666"));
        }
    }

    执行结果如下:

    K09,2K099,A2K09,A2K,K099,099,A2K099,A2K0,2K09,2K0
    99999,9999,999999,999
    666666,A66666,A66,A6666,6666,A666,666,66666
     

    展开全文
  • 字符串拆分成数组实现字符串组合

    千次阅读 2020-06-21 10:44:40
    2) 实现字符串组合,如[“ab”,“2”]通过"&&”分隔符,组合成字符串"ab&&2” public class T1 { public static void main(String[] args) { String a=“ab&&2”; String[] a1=new String[2...

    1)字符串拆分成数组,如"ab&&2” 通过"&”做分隔符,分割得到字符串数组[“ab",“2”]
    2) 实现字符串组合,如[“ab”,“2”]通过"&&”分隔符,组合成字符串"ab&&2”

    public class T1 {
    public static void main(String[] args) {
    String a=“ab&&2”;
    String[] a1=new String[2];
    String b=a.substring(0,a.indexOf("&&")).trim();
    a1[0]=b;
    String c=a.substring(a.indexOf("&&")+2).trim();
    a1[1]=c;
    System.out.println(a1[0]);
    System.out.println(a1[1]);

    	String a2=a1[0].concat("&&"+a1[1]);
    	System.out.println(a2);
    	
    }
    

    }

    展开全文
  • Java实现字符串组合的模糊匹配

    万次阅读 2019-03-10 11:27:58
    接到这么一个需求:根据用户输入内容(以下简称S)对一系列的字符串组合(每个字符串组合以下简称Z)进行模糊匹配,返回匹配的字符串组合(以下简称R)。 举个例子,有如下一系列的Z:(ab),(ab,cd),(ab,cd,ef) 当S为...

    Java实现字符串组合的模糊匹配

    背景

    接到这么一个需求:根据用户输入内容(以下简称S)对一系列的字符串组合(每个字符串组合以下简称Z)进行模糊匹配,返回匹配的字符串组合(以下简称R)。
    举个例子,有如下一系列的Z:(ab),(ab,cd),(ab,cd,ef)
    当S为a时,R为(ab),(ab,cd),(ab,cd,ef)
    当S为a,c时,R为(ab,cd),(ab,cd,ef)

    实现方式

    如果要做精确匹配,实际上就是判断S是不是Z的子集,可以直接考虑调用List.containsAll实现。
    模糊匹配,实际上是对S中的每个字符串s,判断Z中是否有一个字符串z包含它,即z.contains(s)。

    核心代码如下:

    import java.util.*;
    
    public class FuzzyContainsTest {
        public static void main(String []args) {
            List<String> list = Arrays.asList("ab,cd".split(","));
    		List<String> query = Arrays.asList("a,c".split(","));
    		System.out.println(fuzzyContainsAll(list, query));
        }
    	
    	// 判断S是不是Z的子集
    	public static boolean fuzzyContainsAll(List<String> list, List<String> query) {
    		boolean flag = true;
    		for(String str : query) {
    			flag = flag && fuzzyContains(list, str);
    		}
    		return flag;
    	}
    	
    	// 对S中的每个字符串s,判断Z中是否有一个字符串z包含它
    	public static boolean fuzzyContains(List<String> list, String s) {
    		boolean flag = false;
    		for(String z : list) {
    			flag = flag || z.contains(s);
    		}
    		return flag;
    	}
    }
    

    后续优化

    这段代码的时间复杂度是O(n^3),应该有优化的空间,或者有更高效的实现方式,后续想到了再补充。

    展开全文
  • 对数字,字符,数字串,字符串,以及数字与字符串组合进行倒序排列 字符范围:由a到z,A到Z,数字范围:由0到9 符号”的定义 (1)”做为连接符使用时作为字符串的一部分,例如“20-years”作为一个整体字符串呈现...
  • 谁有完整的正则表达式匹配字符串组合的word文档,正则表达式感觉使用的好频繁,想全部仔细的看看
  • mysql>select'123|124|125'regexp'123|126'; +--------------------------------+ |'123|124|125'regexp'123|126'| +--------------------------------+ |1| +-----...
  • 字符串组合算法

    千次阅读 2013-09-25 15:56:21
    例如给定字符串“abc”,全组合意思从中去0个元素,1个元素,一直到n个元素,介绍二进制做法。以字符串“abc”为例: 000 NULL001 c010 b011 bc100 a101 ac110 ab111 abc 思路出来了,代码也比较好写,...
  • BZOJ 1856 [Scoi2010]字符串 组合

    千次阅读 2015-09-24 07:41:47
    BZOJ 1856 [Scoi2010]字符串 组合
  • 字符串组合——位运算

    千次阅读 2014-12-03 10:59:24
    输入一个字符串,输入所有组合。例如:abc, 输出a, b, c, ab, ac, bc, abc。 位运算求解: 一个长度为n的字符串,它的组合有2^n-1中情况,我们用1 ~ 2^n-1的二进制来表示,每种情况下输出当前位等于1的字符。
  • C#将多个字符串组合成一个路径,可利用System.IO.Path类中的Combine(String,String)方法。  命名空间为:using System.IO; 示例: string path1 = @"D:\temp"; string path2 = "result.txt";
  • Matlab 字符串组合

    千次阅读 2017-03-08 00:42:57
    for index_var = 1:num_var prefix = 'condition_'; suffix = '.csv'; file_cond = [prefix int2str(index_var) suffix]; WS = dlmread(file_cond); end
  • String a0,a1,a2,...,an; a0="我饿全文"; a1="ABC"; a2="abc"; '''' an="wre"; 每次从每个an中只取一个字符组合字符串,全部排列出来,如: 我+A+a+w,我+A+a+r等。这个怎么弄啊?
  • 用python生成不重复的字符串组合

    千次阅读 2020-04-10 17:02:21
    最近在测试中遇到一个难题,在做性能测试的时候需要模拟大量的订单来进行先前的数据积累 ,在...#change函数为修改原十进制数据为多进制,可为2-62,也可扩展,需要修改dic内包含的数量,返回字符串类型 #data:十...
  • 软件开发过程中,字符串组合是经常的是情,我们先看一句常用的字符串组合:var strName=张三;var strTableName=myTable;var strSql="select * from "+strTableName+" where name="+strName+"";显然,这句话的目的是要...
  • 字符串组合

    千次阅读 2013-08-29 10:57:34
    printf("第%d个组合\t",num++); vector<char>::iterator iter = result.begin(); for( ; iter != result.end() ; ++iter) printf("%c",*iter); printf("\n"); return ; } if(*string == ...
  • 字符串组合成json

    千次阅读 2014-08-25 17:20:59
    设置jsonobject实体对象 JSONObject ClinetKey = new JSONObject(); try { //向JSONobject中放入数据,其实在这里放入数据的顺序可能在得到的JSON数据每个数据的顺序是不一样的,但是JSON对顺序没有要求 ...
  • 今天研究了字符串组合,和字符串的全排列不同的是,组合只考虑元素的个数而不考虑元素的排列顺序。对于不含重复字符的字符串全排列,笔者搜索到的最简单的算法如下所示,来源...
  • 题目描述给定任意非空字符串,请编程回答存在多少种如下组合的情况“S1+C1+S2+C2+S3”,其中S1/S2/S3为任意非空字符串,C1/C2为任意字符,且C1=C2. 举例说明:例如字符串“duowanisgood”可以分为两种“du+o+wanisg+o...
  • 就是从一串字符中截取,然后把它截取的四位作为16进制,转换为十进制怎么处理?rs1001Ass!截取001A,转换为十进制是26,怎么做呀?
  • 基本字符串组合问题 题目:输入一个字符串,输出该字符串中字符的所有组合。举个例子,如果输入abc,它的组合有a、b、c、ab、ac、bc、abc。 上面我们详细讨论了如何用递归的思路求字符串的排列。同样,本题也可以用...
  • js把字符串组合字符串 js把字符串分割成字符数组
  • 思路:遍历字符串,将第一个字符与其余字符依次交换,然后将第二个字符与其他依次交换,直到最后一个字符public class Test { public static void main(String[] args) { String str ="abcd"; String str2="aba"; ...
  • 这里写自定义目录标题【编程题】字符串所有组合(全排列) 【编程题】字符串所有组合(全排列) 一般地,我们会想到递归法,回溯法。但是对编程小白不好理解啊,于是突发奇想,写了一种利用二进制数和字符串进行映射...
  • 字符串组合

    千次阅读 2016-03-17 16:32:38
    要求:输入一个字符串,输出该字符串的所有组合。如:若字符串为:abc,则应输出:(空集),a、b、c、ab、ac、bc、abc. 思路:考虑到数学中的排列组合知识,我们知道所谓组合即是在字符串中选取某些字符组合在一起,...
  • 字符串组合

    千次阅读 2017-09-17 21:47:14
    输入一个字符串,输出该字符串中字符的所有组合。举个例子,如果输入abc,它的组合有a、b、c、ab、ac、bc、abc。 假设我们想在长度为n的字符串中求m个字符的组合。我们先从头扫描字符串的第一个字符。针对第一个...
  • 假设字符串中的所有字符不重复,如何输出字符串的所有组合,例如,输入字符串为“abc”,则输出a、b、c、ab、ac、bc、abc,共7种组合。 根据题意,如果字符串中有n个字符,根据排列组合的性质,此时一共需要输出2^...
  • 字符串排列组合

    2016-07-05 09:51:40
    实现字符串所有组合数,以及全排列
  • javascript 字符串的排列与组合

    千次阅读 2018-03-27 16:06:47
    不重复字符串的组合 输入 输出 没有重复值的字符串 所有可能的组合值 abc a,b,c,ab,bc,abc 思路递归的思想。...3. 除首字母外的字符串组合值实现function getCombination(str){ if(str.length === 1){

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 555,209
精华内容 222,083
关键字:

字符串组合