//我想把字符串参数往后移3位后输出packagepassword;importjava.io.IOException;classjiami{Strings1;Stringjiami(Strings)throwsIOException{inti,j;Stringallstring="ABCDEFGHIJKLM...
//我想把字符串参数往后移3位后输出
package password;
import java.io.IOException;
class jiami{
String s1;
String jiami(String s)throws IOException{
int i,j;
String allstring="ABCDEFGHIJKLMNOPQRSTUVWXYZABC";
this.s1=s;
for(j=0;j<=s1.length();j++)
{
char s2=s1.charAt(1);
for(i=0;i<=allstring.length();i++){
char allstring1=allstring.charAt(i);
char allstring2=allstring.charAt(i+3);
if(allstring1==s2)
s1=s1.replace(s2, allstring2);
}
}
return s1;
}
}
/**
*
* @author 1
*/
public class password {
/**
* @param args the command line arguments
*/
public static void main(String[] args)throws IOException {
// TODO code application logic here
jiami newpassword=new jiami();
String str="ABCDEFH";
System.out.print(newpassword.jiami(str));
}
}
出错如下:
init:
deps-jar:
Warning: password\password.java modified in the future.
Compiling 1 source file to F:\password\build\classes
compile-single:
run-single:
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 29
at java.lang.String.charAt(Unknown Source)
at password.jiami.jiami(password.java:20)
at password.password.main(password.java:41)
Java Result: 1
成功生成(总时间:0 秒)
怎么改呢?
如传入参数“ABCF”,则替换成“DEFI”输出!也就是每个字符按字母表顺序 用 往后移3位的字符 替换!
展开