【发布时间】:2014-09-10 03:51:36
【问题描述】:
我正在尝试实现自定义拆分字符串方法,但我迷失在 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;
}
【问题讨论】:
-
您的代码到底有什么不正确的地方?
-
你提供了什么输入,你期望什么输出?
-
方向如下: split(\ab#12#453", \#") 在 String 数组中返回 ab, #, 12, #, 453 。 split(\a?b?gf#e", [?#]") 在字符串数组中返回 a, ?, b, ?, gf, #, e
标签: java arrays string loops split