Javaでsubstring()のようなメソッドを作りたいのですが、作り方がわかりません。
3種類のslice()というメソッド
int[] slice(int start)
int[] slice(int start, int end)
int[] slice(int start, int end, int step)
を作りたいです。
例えば、
Sequence seq = new Sequence(new int[]{1, 2, 3, 4, 5});
という風なのを与えられたとすると、一つ目のslice(0)なら出力が、12345となり、
二つ目のslice(0,1)なら1が出力、
三つ目のslice(0, 5, 2)なら、135が出力となるようにしたいです。
下のコードで試したところ、I@7852e922というハッシュコードになってしまい先に進まないのですが、どう作れば良いのでしょうか?
public class Sequence { private int[] mArray; /** * Constructs a sequence of integers. * @param array the array to initialize the sequence. */ public Sequence(int[] array) { mArray = array.clone(); } // TODO: Write the three versions of slice() here public int[] slice(int start) { int[] array = new int[] {}; if(start >= 0) { }else if(start < 0) { } return array; } public int[] slice(int start, int end) { int[] array = new int[] {}; return array; } public int[] slice(int start, int end, int step) { int[] array = new int[] {}; return array; } @Override public String toString() { String result = "{"; if (mArray.length > 0) { result += mArray[0]; for (int i = 1; i < mArray.length; i++) { result += ", " + mArray[i]; } } return result + "}"; } public static void main(String[] args) { Sequence a = new Sequence(new int[]{1, 2, 3, 4, 5}); // some informal testing System.out.println("a.slice(0)->" + a.slice(0)); System.out.println("a.slice(1)->" + a.slice(1)); // System.out.println("a.slice(-1)->" + a.slice(-1)); // System.out.println("a.slice(-2)->" + a.slice(-2)); // System.out.println("a.slice(5)->" + a.slice(5)); // System.out.println("a.slice(-5)->" + a.slice(-5)); // System.out.println("a.slice(0, 5, 2)->" + a.slice(0, 5, 2)); // System.out.println("a.slice(1, 5, 2)->" + a.slice(1, 5, 2)); // System.out.println("a.slice(1, 5, 3)->" + a.slice(1, 5, 3)); // System.out.println("a.slice(2, 5, 3)->" + a.slice(2, 5, 3)); // System.out.println("a.slice(-1, -6, -1)->" + a.slice(-1, -6, -1)); } }
回答2件
あなたの回答
tips
プレビュー