入力が次のようになるように、独自の分割文字列メソッドを記述できる必要があります
String[] test1 = mySplit("ab#cd#efg#", "#");
System.out.println(Arrays.toString(test1));
[ab, #, cd, #, efg, #]
コンソールに出力されます。これまでのところ、そのように分割する必要がありますが、私の方法では、2 つの区切り文字が連続しているか、区切り文字が入力の先頭にある厄介なスペースが残ります。
public static String[] mySplit(String str, String regex)
{
String[] storeSplit = new String[str.length()];
char compare1, compare2;
int counter = 0;
//Initializes all the string[] values to "" so when the string
//and char concatonates, 'null' doesn't appear.
for(int i=0; i<str.length(); i++) {
storeSplit[i] = "";
}
//Puts the str values into the split array and concatonates until
//a delimiter is found, then it moves to the next array index.
for(int i=0; i<str.length(); i++) {
compare1 = str.charAt(i);
compare2 = regex.charAt(0);
if(!(compare1 == compare2)) {
storeSplit[counter] += ""+str.charAt(i);
} else {
counter++;
storeSplit[counter] = ""+str.charAt(i);
counter++;
}
}
return storeSplit;
}
テスト メインでそのメソッドを使用すると、[ab、#、cd、#、efg、#、、、、] という出力が得られます。そのため、すべての間隔を修正する方法がわかりません。また、コードが現在処理していない複数の区切り記号を許可できるようにする必要もあります。
また、最適化の前に概念を説明しようとしているだけで、現時点ではこのコードが本当にずさんであることもわかっています。