저는 여기에서 새로 왔으므로이 문제를 올바르게 설명 할 수있을뿐만 아니라 Java와 같은 기능을 많이 할 때 다른 사람들을 도울 수 있기를 바랍니다.Java : 문자열을 정수로 바꾸기
하지만 내가 여기있는 이유는 ... 주어진 텍스트 파일을 변환해야하므로 "SUBDUE"라는 프로그램에서 사용할 수 있습니다.
파일에 주어진 그래프의 형식은 다음과 같습니다
v 1 startevent
v 2 endevent
v 3 task
v 4 task
v 5 task
v 6 task
v 7 task
v 8 and
v 9 and
v 10 xor
v 11 xor
v 12 xor
v 13 xor
먼저 I에서 :
v 2_i_6 startevent
v 2_i_7 endevent
v 2_i_1 task
v 2_i_2 task
v 2_i_3 task
v 2_i_4 task
v 2_i_5 task
v 2_i_15 and
v 2_i_17 and
v 2_i_14 xor
v 2_i_16 xor
v 2_i_18 xor
v 2_i_19 xor
그러나 프로그램에 대한
는이 파일의 그래프는 다음과 같이해야합니다 나는 그것을 손으로 할 것이라고 생각했다. 하지만 2000 명이 있다는 것을 깨달았습니다. 그래서 Java로 프로그램을 작성하려고했습니다. 때문에, 나는 디버깅을 시작v 1 startevent
v 2 endevent
v 3 task
v 4 task
v 5 task
v 6 task
v 7 task
v 35 and
v 37 and
v 34 xor
v 36 xor
v 38 xor
v 39 xor
하지만 포기 : 나는이 프로그램을 시작할 때
public class Input {
HashMap<String, Integer> replacements = new HashMap<String, Integer>();
public void readFile() throws IOException {
FileReader fr = new FileReader(
"file.txt");
BufferedReader br = new BufferedReader(fr);
String line = null;
StringBuilder sb = new StringBuilder();
int i = 0;
while ((line = br.readLine()) != null) {
if (line.startsWith("%")) {//every graph starts with % and a number so i know which graph is currently in progress
i = 0;
}
if (line.startsWith("v")) {
i++;
replacements.put(line.split(" ")[1], i);
}
}
fr.close();
fr = new FileReader("file.txt");
br = new BufferedReader(fr);
while ((line = br.readLine()) != null) {
for (Entry<String, Integer> e : replacements.entrySet()) {
line = line.replaceAll(e.getKey().toString(), e.getValue().toString());
line.toString();
}
sb.append(line);
System.out.println(line);
try {
Thread.sleep(100);
} catch (InterruptedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
fr.close();
FileWriter fw = new FileWriter(
new File("file.txt"));
fw.write(sb.toString());
fw.close();
}
, 그것은 대부분 바로 변환,하지만 때로는 이런 : 그래서 여기
는 내가 가진 무엇 오른쪽 키가 발견 될 때까지 전체 맵을 살펴볼 필요가있었습니다. 그래서 에서 i++
을 삭제했기 때문에, i
은 항상 0
이었습니다. 그리고이 같은 가지고 :
v 0 startevent
v 0 endevent
v 0 task
v 0 task
v 0 task
v 0 task
v 0 task
v 05 and
v 07 and
v 04 xor
v 06 xor
v 08 xor
v 09 xor
을하지만 그것은 단지 두 자리 수의 사람들의 첫 번째 숫자를 대체 이유를 모르겠어요.
누군가 나에게 힌트를 주거나, 내가 원하는대로이 문자열을 바꾸는 더 나은 옵션이 있기를 바랍니다.
답장을 보내 주셔서 감사합니다.
내 파일의 처음 세 그래프가 여기에 요청되기 때문에. 불편을 드려 죄송합니다.
%1./konvertiermich/andere/Paper-Leben-Modeliranje_delovnih_procesov/obdelava_narocil.epml.pl
v 1_i_2 startevent
v 1_i_17 endevent
v 1_i_23 endevent
v 1_i_26 endevent
v 1_i_4 task
v 1_i_5 task
v 1_i_9 task
v 1_i_11 task
v 1_i_20 task
v 1_i_21 task
v 1_i_25 task
v 1_i_6 xor
v 1_i_10 xor
v 1_i_13 xor
v 1_i_14 xor
v 1_i_15 xor
v 1_i_19 xor
v 1_i_22 xor
d 1_i_2 1_i_4 arc
d 1_i_5 1_i_6 arc
d 1_i_9 1_i_10 arc
d 1_i_10 1_i_14 arc
d 1_i_10 1_i_15 arc
d 1_i_11 1_i_13 arc
d 1_i_13 1_i_14 arc
d 1_i_13 1_i_15 arc
d 1_i_20 1_i_17 arc
d 1_i_19 1_i_21 arc
d 1_i_21 1_i_22 arc
d 1_i_22 1_i_23 arc
d 1_i_25 1_i_26 arc
d 1_i_4 1_i_5 arc
d 1_i_6 1_i_9 arc
d 1_i_6 1_i_19 arc
d 1_i_10 1_i_11 arc
d 1_i_15 1_i_20 arc
d 1_i_14 1_i_19 arc
d 1_i_22 1_i_25 arc
%2./konvertiermich/andere/Web-Wikipedia.cz/wikipedia.cz.epml.pl
v 2_i_6 startevent
v 2_i_7 endevent
v 2_i_1 task
v 2_i_2 task
v 2_i_3 task
v 2_i_4 task
v 2_i_5 task
v 2_i_15 and
v 2_i_17 and
v 2_i_14 xor
v 2_i_16 xor
v 2_i_18 xor
v 2_i_19 xor
d 2_i_1 2_i_14 arc
d 2_i_3 2_i_18 arc
d 2_i_6 2_i_3 arc
d 2_i_14 2_i_7 arc
d 2_i_15 2_i_5 arc
d 2_i_16 2_i_1 arc
d 2_i_17 2_i_4 arc
d 2_i_17 2_i_2 arc
d 2_i_19 2_i_17 arc
d 2_i_2 2_i_15 arc
d 2_i_4 2_i_15 arc
d 2_i_18 2_i_19 arc
d 2_i_5 2_i_16 arc
d 2_i_14 2_i_19 arc
d 2_i_18 2_i_16 arc
%3./konvertiermich/deutsch/BA-Blau-Customer_Relationship_Management_gestützte_Prozesse_am_Beispiel_des_Unternehmens_Alere/39-Angebotsprozess.pl
v 3_i_1 startevent
v 3_i_19 endevent
v 3_i_2 task
v 3_i_6 task
v 3_i_7 task
v 3_i_10 task
v 3_i_13 task
v 3_i_15 task
v 3_i_18 task
v 3_i_3 xor
v 3_i_8 xor
v 3_i_12 xor
v 3_i_17 xor
d 3_i_1 3_i_2 arc
d 3_i_2 3_i_3 arc
d 3_i_6 3_i_8 arc
d 3_i_7 3_i_8 arc
d 3_i_12 3_i_13 arc
d 3_i_17 3_i_18 arc
d 3_i_18 3_i_19 arc
d 3_i_12 3_i_17 arc
d 3_i_3 3_i_6 arc
d 3_i_3 3_i_7 arc
d 3_i_8 3_i_10 arc
d 3_i_10 3_i_12 arc
d 3_i_13 3_i_15 arc
d 3_i_15 3_i_17 arc
당신은'if (line.startsWith ("%")) {// 모든 그래프가 %와 숫자로 시작됩니다 그래서 어떤 그래프가 현재 진행중인지 알 수 있습니다. 그러나 당신은'% '를 당신의 입력의 아무 곳에 나 가지고 있지 않습니다. –
문제는 2000 년 그래프입니다. 그래프 3 f. '3_i_', 그래프 4'4_i_' 등이 있습니다. 또한 번호는 1에서부터 몇 명까지 순서가 맞아야합니다. 나는 편집자와 함께 노력했지만 너무 오래 걸릴 것이다. – NicoE
중간 열이 카운터 인 것처럼 보이기 때문에 더 완벽한 예제를 포함 할 수 있습니까? 나는 그 파일을 한 번 이상 읽을 필요가 없다고 생각한다. –