yyz*_*234 8 java string character-class
哟,所以我试图制作一个程序,可以从用户输入字符串输入例如:"ONCE UPON a time"然后报告该字符串包含多少个大写和小写字母:
输出示例:字符串有8个大写字母,字符串有5个小写字母,我应该使用字符串类而不是数组,有关如何开始这个的任何提示?在此先感谢,这是我到目前为止所做的:D!
import java.util.Scanner;
public class q36{
public static void main(String args[]){
Scanner keyboard = new Scanner(System.in);
System.out.println("Give a string ");
String input=keyboard.nextLine();
int lengde = input.length();
System.out.println("String: " + input + "\t " + "lengde:"+ lengde);
for(int i=0; i<lengde;i++) {
if(Character.isUpperCase(CharAt(i))){
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
TNT*_*TNT 18
只需创建在找到小写或大写字母时递增的计数器,如下所示:
for (int k = 0; k < input.length(); k++) {
/**
* The methods isUpperCase(char ch) and isLowerCase(char ch) of the Character
* class are static so we use the Class.method() format; the charAt(int index)
* method of the String class is an instance method, so the instance, which,
* in this case, is the variable `input`, needs to be used to call the method.
**/
// Check for uppercase letters.
if (Character.isUpperCase(input.charAt(k))) upperCase++;
// Check for lowercase letters.
if (Character.isLowerCase(input.charAt(k))) lowerCase++;
}
System.out.printf("There are %d uppercase letters and %d lowercase letters.",upperCase,lowerCase);
Run Code Online (Sandbox Code Playgroud)
小智 5
Java8中的解决方案:
private static long countUpperCase(String s) {
return s.codePoints().filter(c-> c>='A' && c<='Z').count();
}
private static long countLowerCase(String s) {
return s.codePoints().filter(c-> c>='a' && c<='z').count();
}
Run Code Online (Sandbox Code Playgroud)
爪哇 8
private static long countUpperCase(String inputString) {
return inputString.chars().filter((s)->Character.isUpperCase(s)).count();
}
private static long countLowerCase(String inputString) {
return inputString.chars().filter((s)->Character.isLowerCase(s)).count();
}
Run Code Online (Sandbox Code Playgroud)