我正在尝试制作一个加密程序,其中一部分包括在我的加密文本开头显示密码,然后显示字母后面的字母,密码中包含的字母将从字母表中删除。我试图从我的字母表StringBuffer中删除密码中的字符,但似乎没有简单的方法来做到这一点。没有方法可以自动搜索方法以查找字符的所有出现但是有一个String对象。但是,我必须用另一个字符替换一个字符,我想用一个字符替换一个字符(基本上删除它)。这是我的代码:任何帮助都将不胜感激。
StringBuffer alphabet = new StringBuffer("abcdefghijklmnopqrstuvwxyz");
for(int i = 0; i < pass.length(); i++)
{
char replacedletter = pass.charAt(i);
alphabet.replace(replacedletter,"");
}
System.out.println(pass + alphabet);
答案 0 :(得分:1)
这可能对您有用:
StringBuffer s=...
for(char c: passcode.toCharArray()){
int index=-1;
while((index=s.indexOf(c))!=-1){
s.deleteCharAt(index);
}
}
答案 1 :(得分:0)
您没有指出您使用的是哪个版本的java,但是在7个StringBuffer中确实有replace method。
replace(int start, int end, String str)
使用指定String中的字符替换此序列的子字符串中的字符。
将此与indexOf
方法结合使用以替换所有匹配项。
int ndx = alphabet.indexOf(String.valueOf(replacedLetter), 0);
while (ndx > -1) {
alphabet.replace(ndx, ndx + 1, "");
ndx = alphabet.indexOf(String.valueOf(replacedLetter), ndx);
}