次の形式の 1000 行のテキスト ファイルがあります。
19 x 75 Bullnose Architrave/Skirting £1.02
ファイルを 1 行ずつ読み取るメソッドを作成しています - これは問題なく動作します。
ArrayList<String>
次に、「£」を区切り記号として使用して各文字列を分割し、次の形式で文字列に書き出します。
19 x 75 Bullnose Architrave/Skirting, Metre, 1.02
これは私がそれにアプローチした方法です(productList
はArrayList
、tryブロックの外側で宣言/インスタンス化されています):
try{
br = new BufferedReader(new FileReader(aFile));
String inputLine = br.readLine();
String delim = "£";
while (inputLine != null){
String[]halved = inputLine.split(delim, 2);
String lineOut = halved[0] + ", Metre, " + halved[1];//Array out of bounds
productList.add(lineOut);
inputLine = br.readLine();
}
}
文字列が分割されておらず、ArrayIndexOutOfBoundsException
. 私は正規表現にあまり詳しくありません。私も古いものを使用してみましStringTokenizer
たが、同じ結果が得られます。
デリムとしての問題はあり£
ますか、それとも何か他のものですか? String
2番目のトークンが?として読み取られないことに関係があるのではないかと思いました。
どんなアイデアでも役に立ちます。