-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDocument.java
More file actions
138 lines (103 loc) · 2.41 KB
/
Document.java
File metadata and controls
138 lines (103 loc) · 2.41 KB
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
import java.util.*;
/**
* A very simple Document class that can be used to explore
* issues related to accessibility/visibility
*
* @author Prof. David Bernstein, James Madison University
* @version 2.0
* @Maricel Vicente
*/
public class Document
{
// Note that the attributes are protected
protected String delimiters, text;
/**
* Explicit Value Constuctor
*
* @param text The text of the document
*/
public Document(String text)
{
this.text = text;
delimiters = " ,.;:!?\t\n\r";
}
/**
* Append additional text to the end of this Document
*
* @param addition The text to append
*/
public void append(String addition)
{
text = text + addition;
}
/**
* Get a description of this Document that
* includes a statistical summary
*
* @return The description
*/
public String getDescription()
{
int count;
String result;
count = this.getWordCount();
result = "This document has " + count;
if (count == 1) result += " word ";
else result += " words ";
count = this.getLineCount();
result += "and " + count;
if (count == 1) result += " line ";
else result += " lines ";
return result;
}
/**
* Get the text of this Document
*
* @return The text
*/
public String getText()
{
return text;
}
/**
* Get the number of lines in this Document
*
* @return The number of lines
*/
public int getLineCount()
{
char character;
int count, i;
// Initialize the line counter
count = 1;
if (text.length() == 0) count = 0; // No words means no lines
// Count the number of newline characters
for (i=0; i < text.length(); i++) {
character = text.charAt(i);
if (character == '\n') count = count + 1;
}
return count;
}
/**
* Get the number of words in this Document
*
* @return The number of words
*/
public int getWordCount()
{
int count;
StringTokenizer tokenizer;
tokenizer = new StringTokenizer(text, delimiters);
count = tokenizer.countTokens();
return count;
}
// Lab: Understanding Polymorphisism
public boolean equals(Document other)
{
return this.text.equals(other.text);
}
public String toString()
{
return this.getText();
}
}