当我输入以 m 字母结尾的单词时,我编写的静音程序不起作用
mute program that I code is not working when I enter a word which ends with m letter
当用户输入并排包含“m”、“a”、“l”字母时,程序必须静音。但是当我输入一个以“m”结尾的单词时,程序不起作用。我留下了一些关于代码的图片。
import java.util.Scanner;
public class mute
{
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
String enteredmessage;
System.out.print("Enter the message:");
enteredmessage = scan.nextLine();
char[] array = enteredmessage.toCharArray();
mutecommand(array);
scan.close();
}
public static void mutecommand(char[] dizi) {
for (int i = 0; i < dizi.length; i++) {
if(dizi[i] == 'm' && dizi[i+1] == 'a' && dizi[i+2]=='l')
{
dizi[i]='*';
dizi[i+1]='*';
dizi[i+2]='*';
}
}
for (char a : dizi) {
System.out.print(a);
}
}
}
[https://i.stack.imgur.com/tHOFw.png]
[https://i.stack.imgur.com/UP32b.png]
这是因为你正在遍历数组,如果你在最后一项执行 i + 2,那么它就在数组之外
当用户输入并排包含“m”、“a”、“l”字母时,程序必须静音。但是当我输入一个以“m”结尾的单词时,程序不起作用。我留下了一些关于代码的图片。
import java.util.Scanner;
public class mute
{
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
String enteredmessage;
System.out.print("Enter the message:");
enteredmessage = scan.nextLine();
char[] array = enteredmessage.toCharArray();
mutecommand(array);
scan.close();
}
public static void mutecommand(char[] dizi) {
for (int i = 0; i < dizi.length; i++) {
if(dizi[i] == 'm' && dizi[i+1] == 'a' && dizi[i+2]=='l')
{
dizi[i]='*';
dizi[i+1]='*';
dizi[i+2]='*';
}
}
for (char a : dizi) {
System.out.print(a);
}
}
}
[https://i.stack.imgur.com/tHOFw.png] [https://i.stack.imgur.com/UP32b.png]
这是因为你正在遍历数组,如果你在最后一项执行 i + 2,那么它就在数组之外