gpt4 book ai didi

java - java中自定义字符串分割方法

转载 作者:行者123 更新时间:2023-12-01 22:43:22 25 4
gpt4 key购买 nike

我正在尝试实现自定义拆分字符串方法,但我迷失在 for 循环中。到目前为止,我将发布我的代码,希望有人能告诉我哪里出错了。我知道有更好的方法可以做到这一点,但我只是想知道为什么我似乎无法正确读取 for 循环。基本上我希望能够一次设置多个分隔符。因此,我填充了一个仅包含分隔符的数组,并尝试将完整字符串中的每个字符与分隔符数组中的每个条目进行比较。如果它不是分隔符,则将其添加到字符串中,如果是,则中断循环并获取它创建的字符串并将其添加到字符串数组中的第一个条目。这应该持续到字符数组完成为止。

这是我的代码:

    String[] charArray = new String[s.length()];
String[] stringArray = new String[s.length()];
String[] delimArray = new String[regex.length()];

// Fill array with delimiter values
for (int i=0; i < delimArray.length; i++) {
delimArray[i] = Character.toString(regex.charAt(i));
}

// Fill array with all values in string by character
for (int i=0; i < charArray.length; i++) {
charArray[i] = Character.toString(s.charAt(i));
}

for (int i=0; i < stringArray.length; i++) {
String s1 = "";
for (int k=0; k < charArray.length; k++) {
for (int j=0; j < delimArray.length; j++) {
if (charArray[k] != delimArray[j]) {
s1 = s1 + charArray[k];
} else if (charArray[k] == delimArray[j]) {
stringArray[i+1] = delimArray[j];
break;
}
}
s1 = s1 + charArray[k];
}
stringArray[i] = s1;
}

最佳答案

试试这个-

public static String[] split(String string, String delem) {
ArrayList<String> list = new ArrayList<String>();
char[] charArr = string.toCharArray();
char[] delemArr = delem.toCharArray();
int counter = 0;
for (int i = 0; i < charArr.length; i++) {
int k = 0;
for (int j = 0; j < delemArr.length; j++) {
if (charArr[i+j] == delemArr[j]) {
k++;
} else {
break;
}
}
if (k == delemArr.length) {
String s = "";
while (counter < i ) {
s += charArr[counter];
counter++;
}
counter = i = i + k;
list.add(s);
//System.out.println(" k = "+k+" i= "+i);
}
}
String s = "";
if (counter < charArr.length) {
while (counter < charArr.length) {
s += charArr[counter];
counter++;
}
list.add(s);
}
return list.toArray(new String[list.size()]);
}

关于java - java中自定义字符串分割方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25757030/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com