不使用String.split()拆分字符串并返回定界符

黑手党血
String s = "ab#cd#ef#gh#";
String regex = "#";

char [] sChar = s.toCharArray();
char [] regexChar = regex.toCharArray();

int count = 1;
for (int i = 0; i < regexChar.length; i++){
    for (int j = 0; j < sChar.length; j++){
        if (regexChar [i] == sChar[j]){
            count += 2;
        }
    }
}

String [] splitS = new String [count];
String temp;
for (int k = 0; k < count; k++){
    temp = "";
    for (int i = 0; i < regexChar.length; i++){
        for (int j = 0; j < sChar.length; j++){
            if (regexChar[i] == sChar[j]){
                temp = Character.toString(regexChar[i]);
            }
            else {
                temp = temp + Character.toString(sChar[j]);
            }
        }
    }
    splitS[k] = temp;
}

到目前为止,这是我的代码,但是它给了我splitS[#,#,#,#,#,#,#,#]但是应该是splitS[ab,#,cd,#,ef,#,gh,#]谁能告诉我为什么这样做呢?

杰德沃兹

我认为应该认真考虑有关使用现有标准类的评论,但仅仅是出于娱乐目的,该怎么办:

import java.util.ArrayList;

class Splitter{
    static ArrayList<String> tokenize(String subject, String pattern)
    {
        ArrayList<String> tokens = new ArrayList<>();

        int tokenOff = 0;
        while(true)
        {
            int tokenPos = subject.indexOf(pattern, tokenOff);
            if(tokenPos == -1){ break; }
            String tok = subject.substring(tokenOff, tokenPos);

            addToken(tokens, tok);
            addToken(tokens, pattern);

            tokenOff = (tokenPos + pattern.length());
        }
        // Add any remaining characters
        addToken(tokens, subject.substring(tokenOff));

        return tokens;
    }

    static void addToken(ArrayList<String> list, String tok)
    {
        if(tok.length() > 0){ list.add(tok); }
    }

    public static void main(String args[])
    {
        String subject, pattern;
        ArrayList<String> tokens;

        subject = "ab#cd#ef#gh#"; 
        pattern = "#";
        tokens = tokenize(subject, pattern);
        System.out.println(tokens); // [ab, #, cd, #, ef, #, gh, #]

        subject = "ab##cd##ef##gh##"; 
        pattern = "##";
        tokens = tokenize(subject, pattern);
        System.out.println(tokens); // [ab, ##, cd, ##, ef, ##, gh, ##]

        subject = "ab##cd##ef##gh##ij"; 
        pattern = "##";
        tokens = tokenize(subject, pattern);
        System.out.println(tokens); // [ab, ##, cd, ##, ef, ##, gh, ##, ij]

        subject = "ab##cd#ef#gh##ij"; 
        pattern = "##";
        tokens = tokenize(subject, pattern);
        System.out.println(tokens); // [ab, ##, cd#ef#gh, ##, ij]
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

C#使用Regex.Split拆分大字符串。必须保留定界符

来自分类Dev

如何拆分字符串并使用boost :: split保留定界符?

来自分类Dev

C#使用Regex.Split拆分大字符串。必须保留定界符

来自分类Dev

使用默认定界符与用户定义定界符进行字符串拆分

来自分类Dev

使用保存定界符将字符串按多个定界符进行拆分

来自分类Dev

是否可以使用String.Split或regex将字符串拆分为字符串数组并删除不在定界符之间的部分?

来自分类Dev

如何使用字符串定界符拆分字符串,而忽略引号内的定界符并生成空字符串?

来自分类Dev

使用多字符定界符在AWK中拆分字符串

来自分类Dev

在Java中,如何在不使用方括号中的定界符的情况下拆分字符串?

来自分类Dev

使用2个定界符“ +”和“-”在C ++中拆分字符串

来自分类Dev

如何在python中拆分字符串并使用定界符获取结果?

来自分类Dev

如何在BOURNE SHELL中使用定界符拆分和迭代子字符串?

来自分类Dev

使用R中的定界符数组拆分字符串

来自分类Dev

dart:使用正则表达式拆分字符串并包含定界符

来自分类Dev

使用长定界符将字符串拆分为bash中的数组

来自分类Dev

Java:使用正则表达式拆分字符串而不删除定界符

来自分类Dev

Python使用定界符拆分整数和字符串(混合)列表?

来自分类Dev

如何在BOURNE SHELL中使用定界符拆分和迭代子字符串?

来自分类Dev

如何使用php preg_split分割字符串并保留部分使用的定界符?

来自分类Dev

如何在PHP的字符串中使用动态整数定界符拆分字符串?

来自分类Dev

使用多字符定界符分割字符串

来自分类Dev

在C ++中使用多个定界符(包括定界符)分割字符串

来自分类Dev

使用各种定界符分割字符串,同时保留定界符

来自分类Dev

使用sed用定界符分割字符串

来自分类Dev

使用多个嵌套定界符分割字符串

来自分类Dev

Shell使用变量定界符分割字符串

来自分类Dev

使用多个定界符分割字符串

来自分类Dev

JasperReports:使用定界符分割字符串值

来自分类Dev

使用JavaScript根据定界符分割字符串

Related 相关文章

  1. 1

    C#使用Regex.Split拆分大字符串。必须保留定界符

  2. 2

    如何拆分字符串并使用boost :: split保留定界符?

  3. 3

    C#使用Regex.Split拆分大字符串。必须保留定界符

  4. 4

    使用默认定界符与用户定义定界符进行字符串拆分

  5. 5

    使用保存定界符将字符串按多个定界符进行拆分

  6. 6

    是否可以使用String.Split或regex将字符串拆分为字符串数组并删除不在定界符之间的部分?

  7. 7

    如何使用字符串定界符拆分字符串,而忽略引号内的定界符并生成空字符串?

  8. 8

    使用多字符定界符在AWK中拆分字符串

  9. 9

    在Java中,如何在不使用方括号中的定界符的情况下拆分字符串?

  10. 10

    使用2个定界符“ +”和“-”在C ++中拆分字符串

  11. 11

    如何在python中拆分字符串并使用定界符获取结果?

  12. 12

    如何在BOURNE SHELL中使用定界符拆分和迭代子字符串?

  13. 13

    使用R中的定界符数组拆分字符串

  14. 14

    dart:使用正则表达式拆分字符串并包含定界符

  15. 15

    使用长定界符将字符串拆分为bash中的数组

  16. 16

    Java:使用正则表达式拆分字符串而不删除定界符

  17. 17

    Python使用定界符拆分整数和字符串(混合)列表?

  18. 18

    如何在BOURNE SHELL中使用定界符拆分和迭代子字符串?

  19. 19

    如何使用php preg_split分割字符串并保留部分使用的定界符?

  20. 20

    如何在PHP的字符串中使用动态整数定界符拆分字符串?

  21. 21

    使用多字符定界符分割字符串

  22. 22

    在C ++中使用多个定界符(包括定界符)分割字符串

  23. 23

    使用各种定界符分割字符串,同时保留定界符

  24. 24

    使用sed用定界符分割字符串

  25. 25

    使用多个嵌套定界符分割字符串

  26. 26

    Shell使用变量定界符分割字符串

  27. 27

    使用多个定界符分割字符串

  28. 28

    JasperReports:使用定界符分割字符串值

  29. 29

    使用JavaScript根据定界符分割字符串

热门标签

归档