【发布时间】:2018-02-23 05:27:25
【问题描述】:
所以我试图用字符串计算数组中大写字符的数量。我在这里的一堵砖墙。如果有人能对我的问题有所了解,那就太好了。
我假设仅使用 Character.isLowerCase(item) 也可以完成相同的循环,对吗?
完成后我还要告诉用户数组中最长的字符串以及最长的字符串有多少个字符,我真的不知道该怎么做。
教授真的用这个给我们扔了一个曲线球..
到目前为止,这是我的代码:
// Program3.java
// Brandin Yoder
// 2/23/18
// Store strings in an array and tell user number of upper-case and lower-case characters,
// and spaces
import java.util.Scanner;
public class Program3
{
public static void main(String[] args)
{
// Set up keyboard.
Scanner keyboard = new Scanner(System.in);
// Input number of strings to store.
System.out.print("Number of strings to input: ");
int nrStrings = keyboard.nextInt();
// Clear keyboard buffer.
keyboard.nextLine();
// Set up array to hold strings.
String[] strings = new String[nrStrings];
// Input strings from keyboard.
System.out.println("\nInput strings:");
for(int ctr = 0; ctr < nrStrings; ctr++)
{
System.out.print("String #" + (ctr+1) + " :");
strings[ctr] = keyboard.next();
}
// Print back strings input.
System.out.println("\nStrings input:");
for(int ctr = 0; ctr < nrStrings; ctr++)
{
System.out.println("String #" + (ctr+1) + ": " + strings[ctr]);
}
// Set up variables for upper-case, lower-case and white space calculator.
int UpperNr = 0;
int LowerNr = 0;
int Spaces = 0;
// For loop that determines amount of Upper-Case numbers.
for(int ctr = 0; ctr < nrStrings; ctr++)
{
char item = strings[ctr].charAt(ctr);
if(Character.isUpperCase(item))
UpperNr++;
}
System.out.println(UpperNr);
}
}
【问题讨论】:
-
你有什么问题?
-
这听起来像是一项旨在教授问题分解的作业。首先考虑一个字符串。你能构建一个从读取输入中获取单个字符串的函数吗?你能建立一个函数来计算单个字符串中的大写吗?让这些工作起来,那么这个字符串数组的问题就很容易了。
-
在遍历最后一个循环之前,为 maxLength 创建两个变量,为 maxLength 元素的索引创建另一个变量
-
顺便说一句,
char item = strings[ctr].charAt(ctr);不正确 - 您需要(基于此代码)嵌套的for循环。外部循环将读取字符串,inner循环将读取 that 字符串 的字符 -
可怕的袋熊,非常感谢您的帮助。非常感谢嵌套的 for 循环!