在我的程序中,用户输入一个字符串,它首先找到字符串中字符的最大模式。接下来,我的程序应该删除字符串中一个字符的所有重复项(用户输入:aabc,程序打印:abc),我不完全确定该怎么做。我可以让它从一些字符串中删除重复项,但不是全部。例如,当用户输入“aabc”时,它将打印“abc”,但如果用户输入“aabbhh”,它将打印“abbhh”。另外,在我将 removeDup 方法添加到我的程序之前,它只会打印一次 maxMode,但是在我添加 removeDup 方法之后,它开始打印两次 maxMode。如何防止它打印两次?
注意:我无法将字符串转换为数组。
import java.util.Scanner;
public class JavaApplication3 {
static class MyStrings {
String s;
void setMyStrings(String str) {
s = str;
}
int getMode() {
int i;
int j;
int count = 0;
int maxMode = 0, maxCount = 1;
for (i = 0; i< s.length(); i++) {
maxCount = count;
count = 0;
for (j = s.length()-1; j >= 0; j--) {
if (s.charAt(j) == s.charAt(i))
count++;
if (count > maxCount){
maxCount = count;
maxMode = i;
}
}
}
System.out.println(s.charAt(maxMode)+" = largest mode");
return maxMode;
}
String removeDup() {
getMode();
int i;
int j;
String rdup = "";
for (i = 0; i< s.length(); i++) {
int count = 1;
for (j = 0; j < rdup.length(); j++) {
if (s.charAt(i) == s.charAt(j)){
count++;
}
}
if (count == 1){
rdup += s.charAt(i);
}
}
System.out.print(rdup);
System.out.println();
return rdup;
}
}
public static void main (String[] args) {
Scanner in = new Scanner(System.in);
MyStrings setS = new MyStrings();
String s;
System.out.print("Enter string:");
s = in.nextLine();
setS.setMyStrings(s);
setS.getMode();
setS.removeDup();
}
}