import java.util.Scanner;
public class MyStringMethods{
Scanner sc
= new Scanner
(System.
in);
public void readString()
{
System.
out.
println("Enter in the desired string: "); myStr = sc.nextLine();
}
public void setString
(String s
) {
myStr = s;
}
public int countOccurrences
(String s
) {
int index = 0;
int start = 0;
int count = 0;
do {
index = myStr.indexOf( s, start);
count += 1;
if (index >= 0)
{
start = index + 1;
}
} while (index >= 0);
return count;
}
public int countOccurrences (char c)
{
int index1 = 0;
int start1 = 0;
int count1 = 0;
do {
index1 = myStr.indexOf( c, start1);
count1 += 1;
if (index1 >= 0)
{
start1 = index1 + 1;
}
} while (index1 >= 0);
return count1;
}
private static long countUpperCase
(String myStr
) { return myStr.
chars().
filter((s
)->Character.
isUpperCase(s
)).
count(); }
private static long countLowerCase
(String myStr
) { return myStr.
chars().
filter((s
)->Character.
isLowerCase(s
)).
count(); }
public void printCounts
(String s,
char c
) {
System.
out.
println("***************************************"); System.
out.
println("Analyzing: myStr="+ myStr
); System.
out.
println("Number of Upper case letters="+ countUpperCase
(myStr
)); System.
out.
println("Number of Lower case letters="+ countLowerCase
(myStr
)); System.
out.
println("Number of "+ s
+ " is "+ countOccurrences
(s
)); System.
out.
println("Number of "+ c
+ " is "+ countOccurrences
(c
)); }
public static void main
(String[] args
) { MyStringMethods msm = new MyStringMethods();
msm.readString();
msm.printCounts("big", 'a');
msm.setString("Parked in a van down by the river bank .... The van evan vanished near a lot of other vans");
msm.printCounts("van", 'a');
MyStringMethods msm2 = new MyStringMethods();
msm2.setString("the elephant in the room wouldn't budge");
msm2.printCounts("the", 'i');
}
}
aW1wb3J0IGphdmEudXRpbC5TY2FubmVyOwpwdWJsaWMgY2xhc3MgTXlTdHJpbmdNZXRob2RzewkKCnByaXZhdGUgU3RyaW5nIG15U3RyPSIiOwogCiAKIFNjYW5uZXIgc2MgPSBuZXcgU2Nhbm5lcihTeXN0ZW0uaW4pOwogCiBwdWJsaWMgdm9pZCByZWFkU3RyaW5nKCkKIHsKCSBTeXN0ZW0ub3V0LnByaW50bG4oIkVudGVyIGluIHRoZSBkZXNpcmVkIHN0cmluZzogICAiKTsKICAgICBteVN0ciA9IHNjLm5leHRMaW5lKCk7CiB9CiBwdWJsaWMgdm9pZCBzZXRTdHJpbmcoU3RyaW5nIHMpCiB7CiBteVN0ciA9IHM7CiB9CiBwdWJsaWMgaW50IGNvdW50T2NjdXJyZW5jZXMgKFN0cmluZyBzKQogewoJIGludCBpbmRleCA9IDA7CiAgICAgaW50IHN0YXJ0ID0gMDsgCiAgICAgaW50IGNvdW50ID0gMDsKICAgICBkbyB7CiAgICAgaW5kZXggPSBteVN0ci5pbmRleE9mKCBzLCBzdGFydCk7CiAgICAgY291bnQgKz0gMTsKICAgICAKICAgICBpZiAoaW5kZXggPj0gMCkKICAgICB7CiAgICAgICAgIHN0YXJ0ID0gaW5kZXggKyAxOwogICAgIH0KIH0gd2hpbGUgKGluZGV4ID49IDApOwogICAgIAogICAgcmV0dXJuIGNvdW50OwogICAgIH0KCiBwdWJsaWMgaW50IGNvdW50T2NjdXJyZW5jZXMgKGNoYXIgYykKIHsgCgkgIAkgaW50IGluZGV4MSA9IDA7CgkgICAgIGludCBzdGFydDEgPSAwOyAKCSAgICAgaW50IGNvdW50MSA9IDA7CgkgICAgIAoJICAgICBkbyB7CgkgICAgIGluZGV4MSA9IG15U3RyLmluZGV4T2YoIGMsIHN0YXJ0MSk7CgkgICAgIGNvdW50MSArPSAxOwoJICAgICBpZiAoaW5kZXgxID49IDApCgkgICAgIHsKCSAgICAgICAgIHN0YXJ0MSA9IGluZGV4MSArIDE7IAoJICAgCgkgICAgIAoJICAgICB9CgkgfSB3aGlsZSAoaW5kZXgxID49IDApOwoJICAgICAKCSAgICByZXR1cm4gY291bnQxOwoKCSAgICAgfQogCiBwcml2YXRlIHN0YXRpYyBsb25nIGNvdW50VXBwZXJDYXNlKFN0cmluZyBteVN0cikgewogICAgIHJldHVybiBteVN0ci5jaGFycygpLmZpbHRlcigocyktPkNoYXJhY3Rlci5pc1VwcGVyQ2FzZShzKSkuY291bnQoKTsKIH0KCiBwcml2YXRlIHN0YXRpYyBsb25nIGNvdW50TG93ZXJDYXNlKFN0cmluZyBteVN0cikgewogICAgIHJldHVybiBteVN0ci5jaGFycygpLmZpbHRlcigocyktPkNoYXJhY3Rlci5pc0xvd2VyQ2FzZShzKSkuY291bnQoKTsKIH0KIHB1YmxpYyB2b2lkIHByaW50Q291bnRzKFN0cmluZyBzLCBjaGFyIGMpCiB7CiBTeXN0ZW0ub3V0LnByaW50bG4oIioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiIpOwogU3lzdGVtLm91dC5wcmludGxuKCJBbmFseXppbmc6IG15U3RyPSIrIG15U3RyKTsKIFN5c3RlbS5vdXQucHJpbnRsbigiTnVtYmVyIG9mIFVwcGVyIGNhc2UgbGV0dGVycz0iKyBjb3VudFVwcGVyQ2FzZShteVN0cikpOwogU3lzdGVtLm91dC5wcmludGxuKCJOdW1iZXIgb2YgTG93ZXIgY2FzZSBsZXR0ZXJzPSIrIGNvdW50TG93ZXJDYXNlKG15U3RyKSk7CiBTeXN0ZW0ub3V0LnByaW50bG4oIk51bWJlciBvZiAiKyBzICsgIiBpcyAiKyBjb3VudE9jY3VycmVuY2VzKHMpKTsKIFN5c3RlbS5vdXQucHJpbnRsbigiTnVtYmVyIG9mICIrIGMgKyAiIGlzICIrIGNvdW50T2NjdXJyZW5jZXMoYykpOwogfQpwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CiBNeVN0cmluZ01ldGhvZHMgbXNtID0gbmV3IE15U3RyaW5nTWV0aG9kcygpOwogbXNtLnJlYWRTdHJpbmcoKTsKIG1zbS5wcmludENvdW50cygiYmlnIiwgJ2EnKTsKCiBtc20uc2V0U3RyaW5nKCJQYXJrZWQgaW4gYSB2YW4gZG93biBieSB0aGUgcml2ZXIgYmFuayAuLi4uIFRoZSB2YW4gZXZhbiB2YW5pc2hlZCBuZWFyIGEgbG90IG9mIG90aGVyIHZhbnMiKTsKIG1zbS5wcmludENvdW50cygidmFuIiwgJ2EnKTsKCiBNeVN0cmluZ01ldGhvZHMgbXNtMiA9IG5ldyBNeVN0cmluZ01ldGhvZHMoKTsKIG1zbTIuc2V0U3RyaW5nKCJ0aGUgZWxlcGhhbnQgaW4gdGhlIHJvb20gd291bGRuJ3QgYnVkZ2UiKTsKIG1zbTIucHJpbnRDb3VudHMoInRoZSIsICdpJyk7Cn0KfQ==