【发布时间】:2015-10-02 06:16:03
【问题描述】:
有一个错误,第 3 部分需要设置在另一行。
我无法找到错误的原因。
我需要在哪里设置 part3 行来解决这个问题?
import java.io.*;
public class javadruckdruckextended {
public static void main(String[] args) throws IOException {
//scanning
FileReader fr = new FileReader ("fax_user.csv");
BufferedReader br = new BufferedReader (fr);
FileWriter fw = new FileWriter("Druckausgabe123.txt");
BufferedWriter bw = new BufferedWriter (fw);
String textnow = br.readLine ();
String n = System.getProperty("line.separator");
while (textnow !=null) {
//Umlaute gegen ae,oe,ue tauschen
String text = textnow;
String textXreplaced = text;
textXreplaced = text.replace ("ä","ae");
String textXXreplaced = textXreplaced;
textXXreplaced = textXreplaced.replace ("ü","ue");
String textXXXreplaced = textXXreplaced;
textXXXreplaced = textXXreplaced.replace ("ö","oe");
String textXXXXreplaced = textXXXreplaced.replace("ß","ss");
textXXXXreplaced = textXXXreplaced;
//Text umformatieren, splitten, E-Mail, Nummer anhängen
String textreplaced = textXXXXreplaced.replace(" ", "");
String textreplacedtwo = textreplaced.replace("\"","");
String textreplacedthree = textreplacedtwo.replace(";","");
String textreplacedfour = textreplacedthree.replace(".",","); // Um das "Dr." bei Friedbert Maas wegzusplitten.
String [] parts = textreplacedfour.split(",");
/* Zur Fehlerkontrolle
* if (parts.length<3) { System.out.println(textnow);}
* else {
*/
String Email = "@bogestra.de";
String Zahlen = ";3";
String part1 = parts[0];
String part2 = parts[1];
String part3 = parts[2];
if (parts.length < 2){
String Sonderfalleins = part2 + Email + Zahlen + part1;
bw.write (Sonderfalleins);
} //close if
else {
if (parts.length > 3) {
String part4 = parts[3];
String Sonderfallzwei = part3 + "." + part4 + Email + Zahlen + part1;
bw.write (Sonderfallzwei);
} //close if
else {
String part3zwei = parts[2]; //vielleicht Entfernung
String finished = part3zwei + "." + part2 + Email + Zahlen + part1;
textnow = br.readLine();
bw.write(finished + n );
bw.flush();
} //close else 2
}//close else 1
} //close while
textnow = br.readLine();
bw.flush();
bw.close();
br.close();
} //close static void main String
} //close class
【问题讨论】:
-
存在“错误”。你可以再详细一点吗?请理解,当涉及逻辑时,我们不知道您的代码应该做什么。
-
您的问题很可能是您这样做: String part3 = parts[2];在验证数组中是否存在第三个元素之前。
-
对不起:线程“main”中的异常 java.lang.ArrayIndexOutOfBoundsException: 2 at javadruckdruckextended.main(javadruckdruckextended.java:54)
-
那么问题确实是,您正试图从只有两个元素的数组中获取第三个元素。只有在验证数组中至少有三个元素时才应该进行该分配(=parts[2])
-
您已经将该检查代码注释掉了 (
Zur Fehlerkontrolle ...),它不是已经告诉您这个问题了吗?顺便说一句,我会删除/屏蔽此处发布的代码中的域名或名称(Datenschutz)。