所以我有这个我需要编写的程序。我应该从用户那里获得一个输入字符串,然后打印出字符串中有多少个大写字母和多少个小写字母。我在书中随处可见,我似乎无法找到有关如何打印大写和小写字母的内容。我也一直在做很多谷歌搜索,我找不到任何有用的东西。
无论如何,这是我的代码:
import java.util.Scanner; //calls out the method to get input from user
public class Verk1 {
public static void main(String args[])
{
Scanner innslattur = new Scanner(System.in); //input gotten from user
System.out.println("Sláðu inn textabrot í há- og lágstöfum.");
System.out.println("Forritið mun þá segja þér hve margir stafir eru af hverri gerð.");
System.out.println("Textabrot: ");
//The printouts before tell the user to enter in a string, the program will then print out //how many upper- and lowercase letters there are.
String strengur = innslattur.nextLine();
String hastafir = "";
for (int i=0; i<hastafir.length();i++);
{
System.out.println("Í textabrotinu eru " + hastafir + " hástafir");
}
}
}
我知道代码有问题/无法正常工作,但是你们中的任何人都知道我如何获得大写 - 小写字母的数量来打印出来吗?
提前致谢! 干杯
答案 0 :(得分:0)
如果首先将字符串转换为char [],则可以非常轻松地完成它们。然后,您可以对字符串中的每个字符使用isUpperCase(char c)。 http://www.tutorialspoint.com/java/character_isuppercase.htm
答案 1 :(得分:0)
public void printCapsAndLowercaseCounts(String s) {
int uppercase = 0;
int lowercase = 0;
if (s != null) {
String s1 = s.toUpperCase();
String s2 = s.toLowerCase();
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) == s1.charAt(i) ^ s.charAt(i) == s2.charAt(i)) {
if (s.charAt(i) == s1.charAt(i)) uppercase++;
else lowercase++;
}
}
}
System.out.println(uppercase + " " + lowercase);
}
答案 2 :(得分:0)
由于某些奇怪的原因,你的for循环指的是你刚刚声明的空字符串,而不是你刚从用户那里读到的字符串。但是,如果你改变了,你可以在你的循环中使用strengur.charAt(i)
获取字符串中的单个字符,你可以测试一个字母是否是Character.isUpperCase(ch)
的大写字母,你可以检查一个小写字母与Character.isLowerCase(ch)
。
答案 3 :(得分:0)
我没有测试过,但我会做这样的事情。
String text = "This IS My TEXT StrinG";
int upperCaseCounter = 0;
int lowerCaseCounter = 0;
for (int i=0; i<text.length(); i++)
{
if (Character.isUpperCase(text.charAt(i)))
{
upperCaseCounter++;
}
else if(Character.isLowerCase(text.charAt(i)))
{
lowerCaseCounter++;
}
}
System.out.println("Total Uppercase Characters: " + upperCaseCounter);
System.out.println("Total Lowercase Characters: " + lowerCaseCounter);
答案 4 :(得分:0)
似乎这样就可以解决问题,假设你做得不够多。只需使用一个临时字符串,并获得两者之间的区别:
int capLetterCount = originalString.length() - originalString.replaceAll("[A-Z]", "").length();