【发布时间】:2016-12-19 04:08:24
【问题描述】:
我想对用户输入的字母进行排序,并打印出用户字符串中每个字母的数量。这是我到目前为止所拥有的,我想知道这是否是正确的方法。我对java比较陌生,所以请让事情尽可能简单。根据我使用循环而不是大量 if else 构造的建议,我对我的代码进行了一些调整。这就是我所拥有的:
public class Assignment9
{
public static void main( String [] args )
{
String user_string = Input.getString( "Please enter a string" );
int length = user_string.length();
int char_number = 1;
int alphabet[] = new int[26];
for( int repeats = 0 , repeats <= length , repeats++ )
{
char letter = user_string.charAt( char_number );
char to_be_tested = Character.toLowerCase( letter );
int subscript = 0;
for(int letter_number = 97 , letter_number <= 122 , letter_number++ )
{
char tester = (char) letter_number;
if( to_be_tested == tester )
{
alphabet[subscript]++;
subscript++;
}
}
char_number++;
}
display( alphabet );
}
public static void display( int alphabet[] )
{
int letter = 65;
for( int a = 0; a < alphabet.length; a++ )
{
char character = ( char )letter;
System.out.println ( "letter " + character + " count is " + alphabet[a] );
letter++;
}
}
}
我收到这些错误
test.java:9: error: ';' expected
for( int repeats = 0 , repeats <= length , repeats++ )
^
test.java:9: error: illegal start of expression
for( int repeats = 0 , repeats <= length , repeats++ )
^
test.java:9: error: ';' expected
for( int repeats = 0 , repeats <= length , repeats++ )
^
test.java:9: error: illegal start of expression
for( int repeats = 0 , repeats <= length , repeats++ )
^
test.java:9: error: ')' expected
for( int repeats = 0 , repeats <= length , repeats++ )
^
test.java:9: error: illegal start of expression
for( int repeats = 0 , repeats <= length , repeats++ )
^
test.java:14: error: ';' expected
for(int letter_number = 97 , letter_number <= 122 , letter_number++ )
^
test.java:14: error: illegal start of expression
for(int letter_number = 97 , letter_number <= 122 , letter_number++ )
^
test.java:14: error: ';' expected
for(int letter_number = 97 , letter_number <= 122 , letter_number++ )
^
test.java:14: error: illegal start of expression
for(int letter_number = 97 , letter_number <= 122 , letter_number++ )
^
test.java:14: error: ')' expected
for(int letter_number = 97 , letter_number <= 122 , letter_number++ )
^
test.java:14: error: illegal start of expression
for(int letter_number = 97 , letter_number <= 122 , letter_number++ )
^
12 errors
【问题讨论】:
-
您的老师教过您什么是循环吗?你可以试试用一个吗?此外,您应该修复代码中的语法错误,StackOverflow 不允许这样的简单语法问题。
-
为很棒的 if/else 语句点赞
-
如果你所说的“真棒”意味着可怕。
-
@markspace 为一个可怕的代码付出了巨大的努力
-
确实很恐怖。 OP 我建议你看看数组的用法,你的代码太臃肿了,你想要做的事情可以很容易地用像
Array.indexOf(element)这样的预构建函数来完成。例如,您可以使用它来匹配单词中的字母与数组的索引并增加该索引。
标签: java