所以问题是:要更改前面有 3 个字符的字符串的字符,假设字符串是“AB cd”,它将更改为:“DE fg”。我不擅长编程,但我已尽力而为:
import java.util.*;
public class encrypt{
public static void main(String[] args){
Scanner reader = new Scanner(System.in);
System.out.println("Enter a message to encrypt: ");
String message = reader.nextLine();
List<Character> Lowercase = Arrays.asList('a','b','c','d','e','f','g','h','i','j',
'k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z');
List<Character> Uppercase = Arrays.asList('A','B','C','D','E','F','G','H','I','J',
'K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z');
for ( int i = 0; i < message.length(); i++ ) {
char c = message.charAt( i );
if( c == ' '){
continue;
}
else if (c != ' '){
for ( int i = 0; i < Lowercase.size(); i++ ) {
char b = Lowercase.indexOf(i);
if(c == b){
message.charAt(i)=Lowercase.indexOf(i+3);
}
}
}
for ( int i = 0; i < Uppercase.size(); i++ ) {
char j = Uppercase.indexOf(i);
if(c == j){
message.charAt(i)=Uppercase.indexOf(i+3);
}
}
}
}
}
我一直收到类似这样的错误:
Problem1.java:20: error: variable i is already defined in method main(String[])
for ( int i = 0; i < Lowercase.size(); i++ ) {
^
Problem1.java:21: error: possible loss of precision
char b = Lowercase.indexOf(i);
^
required: char
found: int
Problem1.java:23: error: unexpected type
message.charAt(i)=Lowercase.indexOf(i+3);
^
required: variable
found: value
Problem1.java:27: error: variable i is already defined in method main(String[])
如有任何帮助,我们将不胜感激 :) 谢谢。
最佳答案
除了此处随 dmcqu314 的回答提供的有用链接外,还有一些关于您的代码和发生的错误的想法。
第20行错误
for ( int i = 0; i < message.length(); i++ ) {
正如@Jama Jurayevich 所说,对于内部循环,您真的应该使用除“i”之外的另一个变量。例如使用'k'。这会有所帮助 - 由于其他错误,帮助不大。
第21行错误
char b = Lowercase.indexOf(i);
Lowercase.indexOf(i) 将检索一个(有符号的)int 类型。将其分配给 char 类型 (char b) 会引发类型转换为类似于 unsigned int(即 char)的类型 - 因此暗示“可能会丢失精度”。
第23行错误
message.charAt(i)=Lowercase.indexOf(i+3);
在这里,您试图将一个 int 值分配给字符串方法。那根本不可能。字符串是 Java 中的最终对象。并且没有办法将某些东西分配给方法。如果你想追加一个字符到字符串,你可以这样做(例子):
String newString = new String();
...
newString = newString + 'a'
椭圆是您选择的其他编码。
希望这些提示能帮助您解决一些困惑。
关于java - 更改字符串中的字符时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25715535/