-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathConCharacterSequence.java
More file actions
155 lines (141 loc) · 3.37 KB
/
Copy pathConCharacterSequence.java
File metadata and controls
155 lines (141 loc) · 3.37 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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
package sequence;
public class ConCharacterSequence implements CharacterSequence {
private static final long serialVersionUID = 172395542556451129L;
public char[] achar;
public ConCharacterSequence( ){
achar = new char[0];
}
public ConCharacterSequence(CharSequence s){
achar = new char[s.length()];
for(int i = 0; i<achar.length; i++){
achar[i] = s.charAt(i);
}
}
public ConCharacterSequence(char[] a){
achar = a;
}
public ConCharacterSequence(char c){
achar = new char[1];
achar[0] = c;
}
public boolean equals(CharSequence cs){
boolean out = true;
if(achar.length != cs.length()){
out = false;
return out;
}else{
for(int i =0; i<achar.length; i++){
if (achar[i]!=cs.charAt(i)){
out = false;
break;
}
}
return out;
}
}
public int compareTo(CharSequence cs) {
int csI = 0;
int acI = 0;
int out;
for(int i =0; i<achar.length;i++){
acI += achar[i];
}
for(int i =0; i<cs.length();i++){
csI += cs.charAt(i);
}
out = acI- csI;
return out;
}
public CharacterSequence toLowerCase() {
char[] cc =achar ;
for (int i =0; i< achar.length; i++){
if(achar[i]>=65 && achar[i]<=90){
cc[i] = (char)(achar[i]+32);
}
}
ConCharacterSequence c2 = new ConCharacterSequence(cc);
return c2;
}
public CharacterSequence toUpperCase() {
char[] cc = achar ;
for (int i =0; i< achar.length; i++){
if(achar[i]>=97 && achar[i]<=122){
cc[i] = (char)(achar[i]-32);
}
}
ConCharacterSequence c2 = new ConCharacterSequence(cc);
return c2;
}
public CharacterSequence trim() {
char[] cc = new char[achar.length];
int j = 0;
for (int i =0; i< achar.length; i++){
if(achar[i]==32){
i++;
if(i==achar.length){
j--;
}
}
if(i!=achar.length){
cc[j] = achar[i];
}
j++;
}
char[] c3 = new char[j];
for(int i =0; i<c3.length; i++){
c3[i]= cc[i];
}
ConCharacterSequence c2 = new ConCharacterSequence(c3);
return c2;
}
public CharacterSequence replace(char oldChar, char newChar) {
char[] cc = achar;
for (int i =0; i< achar.length; i++){
if(achar[i]==oldChar){
cc[i] = newChar;
}
}
ConCharacterSequence c2 = new ConCharacterSequence(cc);
return c2;
}
public CharacterSequence concat(CharSequence tail) {
char[] c1 = new char[achar.length + tail.length()];
for(int i = 0; i<achar.length; i++){
c1[i]= achar[i];
}
for(int i = 0; i <tail.length(); i++){
c1[i+achar.length]= tail.charAt(i);
}
ConCharacterSequence c2 = new ConCharacterSequence(c1);
return c2;
}
public char charAt(int index)throws IndexOutOfBoundsException {
try{
return achar[index];
}catch(IndexOutOfBoundsException e){
return ' ';
}
}
public int length() {
return achar.length;
}
public CharacterSequence subSequence(int start, int end) {
char[] c1 = new char[end-start];
ConCharacterSequence c = new ConCharacterSequence("ERROR: INVALID NUMBERS");
if (start>end||start>achar.length||end>achar.length){
return c;
}
for (int i = start; i<end; i ++){
c1[i-start]=achar[i];
}
ConCharacterSequence c2 = new ConCharacterSequence(c1);
return c2;
}
public String toString(){
String out = "";
for(int i =0; i< achar.length; i++){
out += achar[i];
}
return out;
}
}