Masking Personal Information LeetCode solution in Java

1
class Solution {
2
public String maskPII(String s) {
3
StringBuilder sb = new StringBuilder();
4
// email handeling
5
if ((s.charAt(0) >= 97 && s.charAt(0) <= 122) || (s.charAt(0) >= 65 && s.charAt(0) <= 90)) {
6

7
s = s.toLowerCase();
8
int indexofAt = s.indexOf('@');
9
String firstName = s.substring(0, indexofAt);
10
sb.append(firstName.charAt(0))
11
.append("*****")
12
.append(firstName.charAt(firstName.length() - 1));
13
sb.append(s.substring(indexofAt, s.length()));
14
}
15
// phone number handeling
16
else {
17
int digits = 0;
18
for (int i = 0; i < s.length(); i++) {
19
if (Character.isDigit(s.charAt(i))) {
20
digits++;
21
}
22
}
23
if (digits > 10) {
24
sb.append('+');
25
}
26
while (digits > 10) {
27
sb.append('*');
28
digits--;
29
}
30
if (sb.toString().isEmpty() == false) {
31
sb.append('-');
32
}
33
sb.append("***").append('-').append("***-");
34
StringBuilder last4 = new StringBuilder();
35
int count = 0;
36
for (int i = s.length() - 1; i >= 0; --i) {
37
if (count == 4) {
38
break;
39
}
40
if (Character.isDigit(s.charAt(i))) {
41
last4.append(s.charAt(i));
42
count++;
43
}
44
}
45
sb.append(last4.reverse());
46
}
47

48
return sb.toString();
49
}
50
}

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0