Java 从字符数组打印符号
我要解决一个小问题: 对于给定的字符数组Java 从字符数组打印符号,java,arrays,char,Java,Arrays,Char,我要解决一个小问题: 对于给定的字符数组 char[] lista = {'a', '2', '?', 'd', '!', 'S', '3', 'D', 'k'}; 我必须: 只打印元音 只打印辅音 打印号码和号码 打印其他符号 我在四年级有问题 到目前为止,我的代码是: public class Teste { public static void main(String[] args) { char [] lista = {'a', '2', '?', 'd', '!'
char[] lista = {'a', '2', '?', 'd', '!', 'S', '3', 'D', 'k'};
我必须:
public class Teste {
public static void main(String[] args) {
char [] lista = {'a', '2', '?', 'd', '!', 'S', '3', 'D', 'k'};
char [] vogal = {'a', 'e', 'i', 'o','u','A','E','I','O','U'};
char [] numbers = {'1', '2', '3', '4', '5', '6', '7', '8', '9', '0'};
char [] leters = {'b','c','d','f','g','h','j','k','l','m','n','p','q','r','s','t','v','w','x','y','z','B','C','D','F','G','H','J','K','L','M','N','P','Q','R','S','T','V','W','X','Y','Z'};
char [] symbols = {'a', 'e', 'i', 'o','u','A','E','I','O','U','1', '2', '3', '4', '5', '6', '7', '8', '9', '0','b','c','d','f','g','h','j','k','l','m','n','p','q','r','s','t','v','w','x','y','z','B','C','D','F','G','H','J','K','L','M','N','P','Q','R','S','T','V','W','X','Y','Z'};
for (char j=0; j<lista.length ; j++)
for (char i=0; i<vogal.length ; i++ ){
if ( vogal [i] == lista [j] )
System.out.println( "the vowels are: " + vogal [i] );
}
for (char j=0; j<lista.length ; j++)
for (char x=0; x<numbers.length ; x++ ) {
if ( numbers [x] == lista [j] )
System.out.println( "the numbers are: " + numbers [x] );
}
for (char j=0; j<lista.length ; j++)
for (char y=0; y<leters.length ; y++ ) {
if ( leters [y] == lista [j] )
System.out.println( "the leters are: " + leters [y] );
}
//my main problem is here
for (char j=0; j<lista.length ; j++)
for (char z=0; z<symbols.length ; z++ ){
if (symbols [z] != lista [j])
System.out.println( "the symbols are: " + lista [j]);
}
}
}
公共类测试{
公共静态void main(字符串[]args){
char[]lista={'a','2','?','d','!','S','3','d','k'};
char[]vogal={'a','e','i','o','u','a','e','i','o','u'};
字符[]数字={'1','2','3','4','5','6','7','8','9','0'};
字符[]leters={b','c','d','f','g','h','j','k','l','m','n','p','s','t','v','w','x','y','z','b','c','d','f','g','h','j','k','l','m','n','p','q','r','s','v','z','b','c','d','f','g','h','h','j','k','l','m','n','p','q','r','s','t','v','w','x'';
此外,我亦,、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、p',q',r',s',t',v',w',x',y',z'};
对于(char j=0;j如果“符号”的意思是“不是数字或字母”:您可以检查字符是否不是数字或字母,如果不是数字或字母,则可以打印
在迭代字母
和数字
时,使用布尔标志
[初始化为真
],如果发现与其中一个匹配,则将其设置为假
如果在迭代结束时它仍然是true
-它是一个符号
我知道这是家庭作业,所以你可能不被允许——但如果你能使用a——它可能会简化你的生活。与之相反
- 如果参考集中至少有一个(如符号)匹配,则打印
不是
- 如果参考集中至少有一个不匹配,则打印
但是
- 如果引用集中没有匹配项,则打印
换句话说,只要lista[j]
等于symbols[z]
,就应该在z上断开内部循环,并且只有在symbols
中没有找到匹配项时才打印它是符号
(我这里不提供显式代码,因为这是家庭作业)您可以简化for循环。您可以使用包含必需字符的字符串,然后检查字符串中是否包含给定字符。您还可以使用字符类检查字符是否代表字母/数字等
例如:
关于您的具体问题:
for (char j=0; j<lista.length ; j++)
for (char z=0; z<symbols.length ; z++ ){
if (symbols [z] != lista [j])
System.out.println( "the symbols are: " + lista [j]);
对于(char j=0;j您可能会发现处理字符串和字符集合更容易
String list = "a2?d!S3Dk";
String vowel = "aeiouAEIOU";
for(char ch : list.toCharArray()) {
if (Character.isDigit(ch))
System.out.print(ch + " is a digit");
else if (Character.isLetter(ch))
System.out.print(ch + " is a letter");
else
System.out.print(ch + " is a symbol");
if (vowel.indexOf(ch) >= 0)
System.out.print(" and a vowel.");
System.out.println();
}
印刷品
a is a letter and a vowel.
2 is a digit
? is a symbol
d is a letter
! is a symbol
S is a letter
3 is a digit
D is a letter
k is a letter
当您尝试打印符号时,实际会发生什么情况?为什么您的符号数组包含字母而不是符号?为什么您使用char
而不是int
作为数组索引?char[]lista=
应该是char[]lista=…
。你对for循环内部的缩进有误导性…@CarlNorum我不知道所有的符号。我想我可以将我的“符号”数组与“列表”匹配,然后检查“符号”数组中缺少什么。我应该将数组称为“noSymbols”。@Lion…它打印“列表”每个字符数组几次。还建议使用java.lang.Character
。有一些有用的方便方法,如isleter
和isDigit
。
a is a letter and a vowel.
2 is a digit
? is a symbol
d is a letter
! is a symbol
S is a letter
3 is a digit
D is a letter
k is a letter