用Java创建访问器

时间:2015-10-06 20:50:02

标签: java

我正在尝试编写一个类并在Eclipse中创建访问器,稍后我将不得不使用它,但是我很难这样做。我有下面列出的指示,但仍然卡在最后两个。

路线:

  

写一个班级StringSetStringSet对象被赋予一系列String个对象。它存储这些字符串(或者对它们的引用,确切地说)并且可以对整个系列执行有限的计算。 StringSet类具有以下规范:

     
      
  1. 类型ArrayList<String>

  2. 的单个实例变量   
  3. 单个默认构造函数

  4.   
  5. mutator,它将String newStr添加到StringSet对象

         

    void add(String newStr)

  6.   
  7. 访问器,返回已添加到此StringSet对象的String对象数

         

    int size()

  8.   
  9. 访问器,返回已添加到此StringSet对象的所有字符串中的字符总数

         

    int numChars()

  10.   
  11. 访问器,返回StringSet对象中具有len个字符的字符串数

         

    int countStrings(int len)

  12.   

到目前为止我的代码:

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();
        }
    }
}

4 个答案:

答案 0 :(得分:2)

您的字符串集是一个字符串对象数组。可以把它想象成你已经将以下各项添加到stringSet(索引位于值的左侧)。

0[Hello]
1[My]
2[name]
3[is]
5[Keith]

为简单起见,我将使用原始String[]而不是ArrayList

问题5

创建一个变量,将其值增加每个 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;

问题6

调用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;
    }