Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.net  
   

Die mobilen Seiten von c++.net:
https://m.c-plusplus.net

  
C++ Forum :: Java ::  Mein kleines Wörterbuch     Zeige alle Beiträge auf einer Seite Auf Beitrag antworten
Autor Nachricht
Dexter1997
Mitglied

Benutzerprofil
Anmeldungsdatum: 09.01.2016
Beiträge: 78
Beitrag Dexter1997 Mitglied 15:09:02 13.06.2017   Titel:   Mein kleines Wörterbuch            Zitieren

Ich habe als kleine Übung ein textuelles Wortverwaltungsprogramm geschrieben. Vorschläge, was man wie verbessern könnte sind gerne gesehen :) Über jeden gemeldeten Fehler bin ich ebenfalls dankbar!

Ich erläutere mal kurz die Befehle:
help - ein Hilfetext wird angezeigt
show <argument> - Wörter werden angezeigt, mit Eingabe von "*" werden alle Wörter bzw Zeilen angezeigt
add <argument> - Zeile wird hinzugefügt
del <argument> - Wörter werden gelöscht
save - Wörter werden auf Festplatte gespeichert
exit - Programm wird geschlossen

Dictionary.java
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
import java.io.File;
import java.io.BufferedReader;

import java.io.FileReader;

import java.io.FileWriter;

import java.io.BufferedWriter;

import java.io.IOException;

import java.io.FileNotFoundException;

 
public class Dictionary
{
    private String[] words;
    private File file;
 
    public Dictionary()
    {
     
        words = new String[1000];
        file = new File("words.txt");
     
        int i = 0;
        if (file.exists())
        {
            try
            {
                FileReader file_reader = new FileReader("words.txt");
                BufferedReader buffered_reader = new BufferedReader(file_reader);
                         
                String word;
                while((word = buffered_reader.readLine()) != null)
                {
                    words[i] = word;
                    i++;
                }
             
                buffered_reader.close();
            }
            catch(FileNotFoundException e)
            {
                e.printStackTrace();
            }
            catch(IOException e)
            {
                e.printStackTrace();
            }
        }
        else
        {
            try
            {
                file.createNewFile();
            }
            catch(IOException e)
            {
                e.printStackTrace();
            }
        }
     
        for(;i < 1000; i++)
            words[i] = "";
    }
 
    public void show_words(String filter)
    {
        if (filter.equals("*"))
        {
            for(String word : words)
            {
                if(word.equals(""))
                {
                    break;
                }
                else if(!(word.equals("<[d]>")))
                {
                    System.out.println(word);
                }
            }
        }
        else
        {
            for(String word : words)
            {
                if(word.toLowerCase().contains(filter.toLowerCase()))
                {
                    System.out.println(word);
                }
                else if(word.equals(""))
                {
                    break;
                }
            }
        }
    }
 
    public void add_word(String word)
    {
        for(int i = 0; i < words.length; i++)
        {
            if (words[i].equals("") || word.equals("<[d]>"))
            {
                words[i] = word;
                break;
            }
        }
    }
 
    public void del_words(String string)
    {
        for(int i = 0; i < words.length; i++)
        {
            if (words[i].contains(string))
            {
                System.out.println("\"" + words[i] + "\" deleted");
                words[i] = "<[d]>";
            }
        }      
    }
 
    public void save_words()
    {
        try
        {
            FileWriter file_writer = new FileWriter("words.txt");
            BufferedWriter buffered_writer = new BufferedWriter(file_writer);
            int i = 0;
            while(words[i] != "")
            {
                if(!(words[i].equals("<[d]>")))
                {
                    buffered_writer.write(words[i]);
                    buffered_writer.newLine();
                }
                i++;
            }
            buffered_writer.close();
        }
        catch(IOException e)
        {
            e.printStackTrace();
        }
    }
}


Commander.java
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
import java.util.Scanner;
 
public class Commander
{
    private Dictionary dictionary;
    private Scanner input;
 
    public Commander()
    {
        input = new Scanner(System.in);
        dictionary = new Dictionary();
    }
 
    public void init()
    {
        while (true)
        {
            System.out.print("> ");
            String command = input.nextLine();
         
            if(command.equals("help"))
            {
                help();
            }
            else if(command.length() >= 4 && command.substring(0, 4).equals("show"))
            {
                dictionary.show_words(parse(command));
            }
            else if(command.length() >= 3 && command.substring(0, 3).equals("add"))
            {
                dictionary.add_word(parse(command));
            }
            else if(command.length() >= 3 && command.substring(0, 3).equals("del"))
            {
                dictionary.del_words(parse(command));
            }
            else if(command.equals("save"))
            {
                dictionary.save_words();
            }
         
            else if(command.equals("exit"))
            {
                dictionary.save_words();
                break;
            }
            else
            {
                System.out.println("invalid syntax");
            }
        }
    }
 
    private String parse(String input)
    {
        String parsed = input.substring(input.indexOf(' ') + 1, input.length());
        return parsed;
    }
 
    private void help()
    {
 
        System.out.println("help - no arguments    - shows information");
        System.out.println("save - no arguments    - writing changes on hard drive");
        System.out.println("show - <string> or <*> - shows words");
        System.out.println("add  - <string>        - adds word to dictionary");
        System.out.println("del  - <string>        - deletes entrys that contain string");
    }
}


Start.java
Java:
1
2
3
4
5
6
7
8
public class Start
{
    public static void main(String[] args)
    {
        Commander commander = new Commander();
        commander.init();
    }
}


Die Datei "words.txt" könnte so aussehen:
Code:
1
2
3
4
5
6
7
8
9
10
Hallo - hello
Apfel - apple
Zeichenfolge - string
rot - red
gelb - yellow
neu - new
alt - old
Wie geht es dir? - How are you?
Insel - island
Welt - world
C++ Forum :: Java ::  Mein kleines Wörterbuch   Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.net ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info und www.c-plusplus.net enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.