【发布时间】:2014-11-01 03:47:16
【问题描述】:
所以问的问题是:要更改前面有 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[])
任何帮助将不胜感激 :) 谢谢。
【问题讨论】:
-
你应该使用 j 或其他变量名作为你的内循环索引
-
这里的问题太多了...我建议您删除代码,直到出现一个编译器错误,然后提出一个具体的问题。
-
@ChrisMartin 我的问题主要是如何将用户输入字符串中的字符与小写/大写字符进行比较,然后用小写/大写字符替换用户输入字符串数组
-
@JamaJurayevich 我已经尝试过了,但仍然没有任何帮助:\
-
@Finn 你有很多问题和误解。如果您愿意,我可以帮助您用更好的方法解决这个问题
标签: java string loops for-loop