我是初学者所以请帮助我!所以我的目标是用简单的java编写一个程序,让人们输入一个字符串,然后打印总字符,以及总小写字符,这是我到目前为止所拥有的......
import java.util.Scanner;
public class test2 {
public static void main(String[] args){
Scanner input = new Scanner(System.in);
System.out.println("Enter a string");
String s = input.nextLine;
String lower = "";
String total = "";
for (int i = 0; i < s.length(); i++) {
char thisChar = s.charAt(i);
} if (thisChar >= 97 && thisChar <= 122) {
lower += thisChar;
}
System.out.println("Total amount of characters: " + s.length() + " - " + s);
System.out.println("Lower case letters: " + lower.length() + " - " + lower);
}
}
答案 0 :(得分:0)
试试这个:
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Enter a string");
String s = input.nextLine();// methods should be called with () even if have no argument
String lower = "";
String total = "";
for (int i = 0; i < s.length(); i++) {
char thisChar = s.charAt(i);
// you can replace with : if (Character.isLowerCase(thisChar))
if (thisChar >= 97 && thisChar <= 122) {
lower += thisChar;
}
}//close the for loop here
System.out.println("Total amount of characters: " + s.length() + " - " + s);
System.out.println("Lower case letters: " + lower.length() + " - " + lower);
}
答案 1 :(得分:0)
问题是什么?
看起来你关闭了&#34;因为&#34;循环早于你应该
答案 2 :(得分:0)
nextLine()
检查此代码以便更好地理解。
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Enter a string");
String s = input.nextLine();
String lower = "";
for (int i = 0; i < s.length(); i++) {
char thisChar = s.charAt(i);
if (thisChar >= 'a' && thisChar <= 'z') {
lower += thisChar;
}
}
System.out.println("Total amount of characters: " + s.length() + " - " + s);
System.out.println("Lower case letters: " + lower.length() + " - "+ lower);
}
答案 3 :(得分:0)
Scanner.nextLine()
是一个方法,而不是一个变量,所以你应该把()
放在它之后。查看您的String s = input.nextLine;
并将其更改为String s = input.nextLine();
大括号
for (int i = 0; i < s.length(); i++) {
char thisChar = s.charAt(i);
} if (thisChar >= 97 && thisChar <= 122) {
lower += thisChar;
}
如您所见,第一个}
关闭了for
,这意味着:thisCar
将不再可见,您无法在外面使用它!将其更改为
for (int i = 0; i < s.length(); i++) {
char thisChar = s.charAt(i);
if (thisChar >= 97 && thisChar <= 122) {
lower += thisChar;
}
}
使用&#39; a&#39;和&#39; z&#39;作为范围。所以if将是
if (thisChar >= 'a' && thisChar <= 'z') {
您不需要总变量。
如果您需要创建字符串,请使用StringBuilder
,这样可以避免创建无用的临时字符串。
您只需要计算小写字母的数量或显示?如果是前者,只需使用整数变量并每次递增,而不是将所有内容放在较低的String中。
int lower = 0;
for (int i = 0; i < s.length(); i++) {
char thisChar = s.charAt(i);
if (thisChar >= 'a' && thisChar <= 'z') {
lower ++;
}
}