0

我想创建一个类,该类将返回一个与输入字符串数组具有相同长度的对数组。此外,该对应具有字符串的首字母和字符串的长度。

例如; create(new String[] {"clue", "yay", "neon", "halala"}) 应该返回 Pairs {['c',4],['y',3],['n ',4],['h',6]}

所以,我的输入和输出都是数组。但是输出必须是一对的形式。这是我尝试过的:

import java.util.Arrays;



public class Couple {


public static Couple[] create(String[] source){

        for (int i = 0; i < source.length; i++) {

            System.out.print("["+","+source.length+"]") ;
        }
        return null;

    }            

    public static void main(String[] args) {
        System.out.println(Arrays.toString(create(new String[] {"clue", "yay", "neon", "halala"})));

    }

}

因为很明显有一些错误+我不希望它返回null。但只是为了测试这段代码,我不得不这样做。有任何想法吗?

4

4 回答 4

1

你走在正确的轨道上:

  • 而不是返回null,您应该创建一个对数组,并将其填充到循环中。你知道结果的长度,因为你有源的长度
  • 要查看单个单词,请使用source[i]
  • 砍掉单词的首字母使用source[i].charAt(0)
  • 要获取单词的长度,请使用source[i].length()
  • 该类Couple需要两个数据成员 - achar和 an int; 它们应该在构造函数中设置
  • 数据成员应该有 getter -public char getChar()public int getLength()返回他们各自的成员
  • 打印应该在main, 在遍历返回的对数组的循环中完成

您应该能够完成其余的工作。

于 2013-08-08T00:33:47.143 回答
1
public class Couple {

    private char firstChar;
    private int length;

    public Couple(char firstChar, int length) {
        this.length = length;
        this.firstChar = firstChar;
    }

    public static Couple[] create(String[] source) {
        Couple[] couples = new Couple[source.length]; // create the array to hold the return pairs

        for (int i = 0; i < source.length; i++) {
            String entry = source[i];
            if (entry != null) {
                couples[i] = new Couple(entry.charAt(0), entry.length());
            } else {
                // What do you want to do if there's a null value?
                // Until you answer this we'll just leave the corresponding Couple null aswell
            }
        }

        return couples;
    }

    @Override
    public String toString() {
        return "Couple{" +
                "firstChar=" + firstChar +
                ", length=" + length +
                '}';
    }
}
于 2013-08-08T00:40:43.037 回答
0

您可能需要它的提示:

Couple[] result = new Couple[source.length];

并编写一个循环来创建Couple实例并将它们放入result数组中。

于 2013-08-08T00:31:41.167 回答
0

使用此代码:

import java.util.Arrays;

public class Couple {

    public static String[] create(String[] source) {

        String[] temp = new String[source.length];
        for (int i = 0; i < source.length; i++) {

            if (source[i].length() > 0) {
                String newString = "[" + source[i].charAt(0) + ","
                        + source.length + "]";
                //System.out.print(newString);
                temp[i] = newString;
            } else {
                String newString = "[" + " " + "," + 0 + "]";
                //System.out.print(newString);
                temp[i] = newString;
            }

        }
        return temp;

    }

    public static void main(String[] args) {
        System.out.println(Arrays.toString(create(new String[] { "clue", "yay",
                "neon", "halala"})));

    }

}
于 2013-08-08T04:33:49.183 回答