我正在尝试编写一个类并在Eclipse中创建访问器,稍后我将不得不使用它,但是我很难这样做。我有下面列出的指示,但仍然卡在最后两个。
路线:
写一个班级
StringSet
。StringSet
对象被赋予一系列String
个对象。它存储这些字符串(或者对它们的引用,确切地说)并且可以对整个系列执行有限的计算。StringSet
类具有以下规范:
- 的单个实例变量
类型
ArrayList<String>
单个默认构造函数
mutator,它将String newStr添加到
StringSet
对象
void add(String newStr)
访问器,返回已添加到此
StringSet
对象的String对象数
int size()
访问器,返回已添加到此
StringSet
对象的所有字符串中的字符总数
int numChars()
- 醇>
访问器,返回
StringSet
对象中具有len
个字符的字符串数
int countStrings(int len)
到目前为止我的代码:
import java.util.ArrayList;
public class StringSet {
ArrayList<String> StringSet = new ArrayList<String>();
public StringSet() {
}
public void add(String newStr) {
StringSet.add(newStr);
}
public int getsize() {
return StringSet.size();
}
public int getnumChars() {
return StringSet.length();
}
public int countStrings(int len) {
if (StringSet.equals(len)) {
return StringSet.size();
}
}
}
答案 0 :(得分:2)
您的字符串集是一个字符串对象数组。可以把它想象成你已经将以下各项添加到stringSet
(索引位于值的左侧)。
0[Hello]
1[My]
2[name]
3[is]
5[Keith]
为简单起见,我将使用原始String[]
而不是ArrayList
创建一个变量,将其值增加每个 String的大小。然后使用for
循环评估每个String
的长度,并将其添加到该变量中:
int totalCharsInStringSet = 0;
for (int i = 0; i < stringSet.size(); i++) { // loop through each index
// add the length of the string at this index to your running tally
totalCharsInStringSet += stringSet[i].length;
}
// you've read through all of the array; return the result
return totalCharsInStringSet;
调用stringSet.size()
只是计算数组中有多少元素;因此,您需要创建一个与目标长度匹配的单个字符串的计数。克服一个变量来保持这个统计。再次,使用for循环迭代数组,并将每个字符串的长度与目标值进行比较。如果匹配,请增加您的计数:
int numberOfMatches = 0;
for (int i = 0; i < stringSet.size(); i++) {
if (string[i].length == len) { // "len" is your input target length
numberOfMatches ++;
}
}
return numMatches;
答案 1 :(得分:0)
数字5:您遍历ArrayList
并累计存储在那里的字符串的长度。
数字6:你遍历你ArrayList
并检查字符串的长度是否与所需的长度匹配,并跟踪匹配字符串的数量。
答案 2 :(得分:0)
Well ArrayLists没有length()方法,所以你需要做些什么来计算字符串集中字符的总数是迭代通过StringSet列表并找到每个字符串的长度并将其添加到运行中总。
int sum = 0;
for(int i = 0; i < StringSet.size(); i++){
sum = sum + StringSet.get(i).length();
}
return sum;
对于countStrings,您需要将此if语句放在for循环中,并在每次触发if语句时递增一个总和并返回总和
int sum = 0;
for(int i = 0; i < StringSet.size(); i++){
if(StringSet.get(i).length() == len){
sum = sum + 1;
}
}
return sum;
答案 3 :(得分:0)
问题5:
public int getnumChars()
{
int countChar = 0;
for(String strSet: StringSet){
countChar += strSet.length();
}
return countChar;
}
问题6:
public int countStrings(int len)
{
int count = 0;
for(String strSet: StringSet){
if(strSet.length() == len){
count++;
};
}
return count;
}