大家好我是编程的新手,我正在为我的java类做一个任务,指出这个
String类中的split方法返回一个字符串数组,这些字符串由分隔符分割的子字符串组成。但是,分隔符不会返回。实现以下新方法,该方法返回由匹配分隔符分割的字符串数组,包括匹配的分隔符。
public static String [] split(String s,String regex)
例如,拆分(“ab#12#453”,“[?#]”)
在字符串数组中返回[ab,#,12,#,453]
输出
[ab,#,12,#,453]
这是我的代码
public class Assignment {
public static void main(String[] args) {
String str= "ab#12#453";
String []temp;
String delimiter= "#";
temp=str.split(delimiter);
for(int i = 0;i<temp.length;i++)
{
if(i == 0){
System.out.printf("[");
}
System.out.printf(temp[i]);
if(i != temp.length - 1){
System.out.printf(", " + delimiter + ", ");
}
if(i == temp.length - 1){
System.out.printf("]");
}
}
}
}
正如你所看到的,我会得到正确的输出,但我很确定这不是作业的要求。有人可以指出我在这里可能出错的地方以及从哪里开始以正确的方式思考?
答案 0 :(得分:1)
你被要求
实现以下新方法,该方法返回由匹配分隔符分割的字符串数组,包括匹配的分隔符。
public static String[] split(String s, String regex)
返回一个字符串数组(String[]
)并在调用时将两个字符串(一个用于拆分,分隔符用作正则表达式)作为参数。
因此,实际上要求您实现方法split
,如下所示:
public static String[] split(String s, String regex) {
/*
split your input string 's' by the delimiter 'regex',
add each sub string to an array
and return the generated array
*/
}
然后可以调用方法split
,如问题陈述中所示。
我还建议您查看Java regular expressions
答案 1 :(得分:0)
由于您没有任何具体说明,因此您可以像处理阵列中的其他每个元素一样输入#。
请记住,您必须将数组扩展array.length()/2
。
毫无意义的解决方案,但很简单。