'Java Code working on VM computer but not on Home Computer
I wrote some java code using eclipse on my Linux VM to handle some data and it is working fine. I tried transferring it over to my main computer and suddenly it has stopped working. I am giving it the exact same inputs and it is running the exact same code however it is not giving the same output.
What could be the reason for this?!
This is the code. It should output like 1600 lines based on the input but only outputs 17 before stopping (on the main computer.)
import java.util.*;
import java.io.*;
//- breaks it
public class DataToList {
public static void main(String[] args) throws FileNotFoundException {
Scanner in = new Scanner(new File("probot.txt"));
String jumpName = "";
String jumpKingdom = "";
double jumpDifficulty = -1;
String jumpFrom = "";
String jumpLink = "";
int jumpCount = 0;
boolean nextDatabase = false;
String[] kingdoms = new String[] {"mushroom kingdom", "cap kingdom", "cascade kingdom", "sand kingdom", "lake kingdom", "wooded kingdom", "cloud kingdom", "lost kingdom", "metro kingdom", "seaside", "snow kingdom", "luncheon", "ruined kingdom","bowser","moon kingdom", "dark side", "darker side", "odyssey"};
HashMap<String,ArrayList<Jump>> jumps = new HashMap<>();
//name-kingdom
//Difficulty
//From the _ server
//Name
//Estimated Difficulty
//From the _ server
boolean reset = false;
PrintWriter out = new PrintWriter(new File("tigerdino.txt"));
while(in.hasNextLine()) {
String line = in.nextLine();
if(line.toLowerCase().contains("difficulty")) {
char character = 'x';
if(line.contains("-")) character = '-';
if(line.contains(":")) character = ':';
if(character!='x') {
if(line.contains("Estimated")) {
reset = false;
}else {
String temp = line.split(character+"")[1].substring(1);
if(temp.contains("Low")) jumpDifficulty = 11;
if(temp.contains("Mid")) jumpDifficulty = 12;
if(temp.contains("High")) jumpDifficulty = 13;
if(temp.contains("Insanity")) jumpDifficulty = 14;
if(temp.contains("God Tier")) jumpDifficulty = 15;
if(temp.contains("/10")) {
jumpDifficulty = Double.parseDouble(temp.split("/")[0]);
}
}
}
}else if(line.contains("-") && !line.contains("http")) {
if(!line.contains("Difficulty")) {
boolean isInside = false;
for(int i = 0;i<kingdoms.length;i++) {
if(line.toLowerCase().contains(kingdoms[i])) isInside = true;
}
if(isInside) {
reset = true;
String[] jk = line.split("-");
String name = "";
for(int i = 0;i<jk.length-1;i++) {
name += "-"+jk[i];
}
jumpName = name.substring(1,name.length()-1);
jumpKingdom = jk[jk.length-1].substring(1);
}
}
}
else if(line.toLowerCase().contains("found") || line.toLowerCase().contains("proven")) {
jumpFrom = line;
}
else if(line.toLowerCase().contains("http")) {
jumpLink = line;
if(nextDatabase) {
String tgDino = "!jumprole create NAME "+jumpName+" TIER "+diffToTier(jumpDifficulty)+" INFO Use ProBot for a complete list of this jumps's information!"+" KINGDOM "+jumpKingdom+" LINK "+jumpLink;
//COMMENT
out.println(jumpCount+" "+tgDino);
System.out.println(jumpCount+" "+tgDino);
jumpCount++;
nextDatabase = false;
}
}
else if(line.contains("From the") && reset) {
if(line.contains("Database")) {
if(!jumps.containsKey(kingdomToGood(jumpKingdom))) jumps.put(kingdomToGood(jumpKingdom), new ArrayList<>());
jumps.get(kingdomToGood(jumpKingdom)).add(new Jump(jumpDifficulty,jumpName));
//tj
nextDatabase = true;
}
//COMMENT
// jumpKingdom = "Error";
// jumpName = "Error: "+jumpName;
// jumpLink = "Error";
// jumpDifficulty = -1;
}
}
in.close();
//COMMENT
System.out.println(jumpCount);
//COMMENT
// String[] order = new String[] {"Error Kingdom","Mushroom Kingdom","Cap Kingdom", "Cascade Kingdom","Sand Kingdom", "Lake Kingdom", "Wooded Kingdom", "Cloud Kingdom", "Lost Kingdom", "Metro Kingdom", "Snow Kingdom", "Seaside Kingdom", "Luncheon Kingdom", "Ruined Kingdom", "Bowser's Kingdom", "Moon Kingdom", "Dark Side", "Darker Side", "Odyssey"};
//
// for(String kingdom : order) {
// System.out.println("**__"+kingdom+"__**");
// if(!jumps.containsKey(kingdom)) continue;
//
// System.out.println("This kingdom has "+jumps.get(kingdom).size()+" jumps!");
//
// Collections.sort(jumps.get(kingdom));
// for(Jump j:jumps.get(kingdom)) {
// System.out.println(j);
// jumpCount++;
// }
// System.out.println();
// }
//
// System.out.println(jumpCount);
}
static String diffToTier(double d) {
if(d==0.0) return "Practice Tier";
if(d<=3.0) return "Beginner";
if(d<=5.0) return "Intermediate";
if(d<=6.5) return "Advanced";
if(d<=8.0) return "Expert";
if(d<=10) return "Master";
if(d<=11) return "Low Elite";
if(d<=12) return "Mid Elite";
if(d<=13) return "High Elite";
if(d<=14) return "Insanity Elite";
return "God Tier";
}
static String kingdomToGood(String input) {
if(input.contains("Error")) return "Error Kingdom";
if(input.contains("Cap")) return "Cap Kingdom";
if(input.contains("Cascade")) return "Cascade Kingdom";
if(input.contains("Sand")) return "Sand Kingdom";
if(input.contains("Lake")) return "Lake Kingdom";
if(input.contains("Wooded")) return "Wooded Kingdom";
if(input.contains("Cloud")) return "Cloud Kingdom";
if(input.contains("Lost")) return "Lost Kingdom";
if(input.contains("Metro")) return "Metro Kingdom";
if(input.contains("Snow")) return "Snow Kingdom";
if(input.contains("Seaside")) return "Seaside Kingdom";
if(input.contains("Luncheon")) return "Luncheon Kingdom";
if(input.contains("Ruined")) return "Ruined Kingdom";
if(input.contains("Bowser")) return "Bowser's Kingdom";
if(input.contains("Moon")) return "Moon Kingdom";
if(input.contains("Dark Side")) return "Dark Side";
if(input.contains("Darker Side")) return "Darker Side";
if(input.contains("Mushroom")) return "Mushroom Kingdom";
if(input.contains("Odyssey")) return "Odyssey";
return "unkown kingdom";
}
static String doubleToString(double difficulty) {
return difficulty==15?"God Tier":difficulty==14?"Insanity Elite":difficulty==13?"High Elite":difficulty==12?"Mid Elite":difficulty==11?"Low Elite":difficulty%1==0?(int)difficulty+"/10":difficulty+"/10";
}
static class Jump implements Comparable<Jump>{
double difficulty;
String name;
Jump(double diff, String n){
this.difficulty = diff;
this.name = n;
}
public int compareTo(Jump o) {
if(this.difficulty>o.difficulty) return 1;
else if(this.difficulty<o.difficulty) return -1;
else return 0;
}
public String toString(){
return name+" | "+doubleToString(difficulty);
}
}
}
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
