目前我正在學習如何使用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 ..爲什麼害怕張貼作爲答案。這是一個完美的。 –