Avatar billede Jacey Nybegynder
29. oktober 2010 - 14:46

hjælp til en decrypterings opgave

Hej :)
Jeg er meget ny til programmering og skal lave en opgave om decryptering som jeg simpelhen ikke kan løse.
Opgaven går ud på at indlæse en krypteret tekst som er krypteret med ceasar cipher, og finde hyppigheden af alle bogstaverne i teksten. Denne hyppighed skal så sammenlignes med den generalle hyppighed af bogstaver i det engelsk alfabet. Dette skal gøres ved at lægge de to hyppigheder i en arrayliste, sortere og sammenligne, og så på en eller anden måde finde nøglen som skal bruges til at dekryptere.

Koden jeg har indtil videre:

import java.io.*;
import java.util.*;

public class Pair

    private double i;
    private String s;

    public Pair(){}

    public Pair(double i,String s){
        this.i = i;
        this.s = s;
    }

    public static void main(String[] args){
        Comparator<Pair> comp = new Pair();
        TreeMap<Pair,java lang.String> map = new TreeMap<Pair,String>(comp);
        map.put(new Pair(8.167,"a"));
        map.put(new Pair(1.492,"b"));
        map.put(new Pair(2.782,"c"));
        map.put(new Pair(4.253,"d"));
        map.put(new Pair(12.702,"e"));
        map.put(new Pair(2.228,"f"));
        map.put(new Pair(2.015,"g"));
        map.put(new Pair(6.094,"h"));
        map.put(new Pair(6.966,"i"));
        map.put(new Pair(0.153,"j"));
        map.put(new Pair(0.772,"k"));
        map.put(new Pair(4.025,"l"));
        map.put(new Pair(2.406,"m"));
        map.put(new Pair(6.749,"n"));
        map.put(new Pair(7.507,"o"));
        map.put(new Pair(1.929,"p"));
        map.put(new Pair(0.095,"q"));
        map.put(new Pair(5.987,"r"));
        map.put(new Pair(6.327,"s"));
        map.put(new Pair(9.056,"t"));
        map.put(new Pair(2.758,"u"));
        map.put(new Pair(0.978,"v"));
        map.put(new Pair(2.360,"w"));
        map.put(new Pair(0.150,"x"));
        map.put(new Pair(1.974,"y"));
        map.put(new Pair(0.074,"z"));
        System.out.println(map);
        System.out.println("");

       
        String bogstaver = "abcdefghijklmnopqrstuvwxyz";
        String inputFile = args[0];

        Scanner sc;
        String inputText = "";
        try {
            sc = new Scanner(new File(inputFile));
            while(sc.hasNext()) {
            inputText = inputText + sc.nextLine();
        }
        } catch (FileNotFoundException e) {
            System.out.println("Kunne ikke finde filen");
        }
       
        Scanner sc1 = new Scanner(System.in);
        String temp = "";

        HashMap<String,Integer> map1 = new HashMap<String,Integer>();
        int i=0,j=0,hyppighed=0;
        for(tekst.charAt(i); i < tekst.length(); i++)
            if(tekst.charAt(i) != bogstaver.charAt(j))
                j++;
            else
                hyppighed++;
        temp = (temp + tekst.charAt(i));
        map1.put(temp, hyppighed);
        System.out.println(map1)


        ArrayList<Pair> pairs = new ArrayList<Pair>();
        for(double i:map2.keySet())
            pairs.add(new Pair(i,map2.get(i)));
        Collections.sort(pairs);
        for(Pair p:pairs)
            System.out.println(p);
   
    }

    public double compare(Pair a,Pair b){
        return a.compareTo(b);
    }

    public String toString(){
        return i+": "+s;
    }
}

Please help! Alle ideer til hvordan jeg får rettet det jeg har lavet og hvordan jeg kommer videre, vil jeg være taknemmelig for :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester