目前我正在学习如何使用Java数组列表和我被困在一个简单的,但恼人的问题..程序不替换字母
import java.util.*;
public class ReplacingALetter
{
public static void main (String[] args)
{
String word = "Banana";
List underscore = new ArrayList(word.length());
int i;
for (i=0; i<word.length(); i++)
{
underscore.add(i, "x");
}
System.out.print(underscore);
System.out.println();
System.out.print("Enter a letter: ");
Scanner sc = new Scanner(System.in);
String letter = sc.nextLine();
if (sc.equals("B"))
{
underscore.set(word.indexOf("B"),"B");
}
System.out.print(underscore);
}
}
出于某种原因,它不是数组中替换第一个x '下划线' 以字母B:/
该代码的输出为[XXXXXX]
但是,当我输入验证码:
import java.util.*;
public class ReplacingALetter
{
public static void main (String[] args)
{
String word = "Banana";
List underscore = new ArrayList(word.length());
int i;
for (i=0; i<word.length(); i++)
{
underscore.add(i, "x");
}
System.out.print(underscore);
System.out.println();
System.out.println("Switching First x with B: ");
underscore.set(word.indexOf("B"),"B");
System.out.print(underscore);
}
}
它完美的作品,输出为[B XXXXX]
想不通我做错了什么....
您是否在调试器中逐步完成该程序? –
'if(sc.equals(“B”))' - >'sc'是一个'Scanner',''B''一个字符串,它们永远不会相等...... – jlordo
@jlordo ..为什么害怕张贴作为答案。这是一个完美的。 –