成对数组中的字符串数组?

时间:2013-08-08 16:47:02

标签: java arrays

无论如何我可以从一对数组中返回一个字符串数组吗?我猜它与hashmap有关,因为涉及两个值。任何带有一些解释的简单例子都会有所帮助:)

正如@dasblinkenlight指出的那样,如果输入是(y,3),(t,2)并且我希望输出为“yPP”,“tP”,其中字符串应该具有给定数值的长度。拍摄角色后,剩余的长度将由P填充。

假设我有静态方法,

public static Line[] get(Couple[] temp)

我需要完成它,以便我的main方法产生以下结果:

get (new Couple[]{new Couple(’e’,4), new Couple(’n’,2)})

应该返回字符串数组

{"ePPP", "nP"}

希望这会有所帮助:)

3 个答案:

答案 0 :(得分:1)

class Pair{
    public Pair(String st1,String st2){
        string1=str;
        string2=str;
    }
    private String string1;
    private String string2;

     // + getters and maybe setters for strings;

}

稍后创建简单的Pair[]并执行任何您想要的操作

答案 1 :(得分:1)

Pair类实现为

class Pair {
    private final String s;
    private final int i;

    public Pair(String s, int i){
        this.s = s;
        this.i = i;
    }

    public String getS() {
        return s;
    }

    public int getI() {
        return i;
    }
}

初始化Pair[]并调用转换器方法

Pair[] pairArr = new Pair[2];

pairArr[0] = new Pair("Y", 3);
pairArr[1] = new Pair("T", 2);

System.out.println(Arrays.toString(convertPairsToStrArray(pairArr, "P")));

输出

[YPP, TP]

以下是转换器实现示例:

private static String[] convertPairsToStrArray(Pair[] pairArr, String padStr) {
    String[] strArr = null;
    if (pairArr != null) {
        strArr = new String[pairArr.length];
        for (int i = 0; i < pairArr.length; i++) {
            String s = pairArr[i].getS();
            StringBuilder sb = new StringBuilder();
            if (s != null) {
                sb.append(s);
                int j = 0; 
                if ((j = pairArr[i].getI() - s.length()) > 0) {
                    while (j-- > 0) {
                        sb.append(padStr);
                    }
                }
            }
            strArr[i] = sb.toString();
        }
    }
    return strArr;
}

答案 2 :(得分:0)

与许多事情一样,问题包含答案。 创建一个类来保存对。向该类添加一个方法,以生成所需的输出。这是一些代码:

Pairzor.java:

public class Pairzor
{
    private final static char FILL_CHARACTER = 'P';

    private final char theChar;
    private final int theCount;

    public Pairzor(
        final char newChar,
        final int newCount)
    {
        theChar = newChar;
        theCount = newCount;
    }

    public final String blammy()
    {
        StringBuilder buffer = new StringBuilder();

        buffer.append(theChar);
        for (int count = 1; count < theCount; ++count)
        {
            buffer.append(FILL_CHARACTER);
        }

        return buffer.toString();
    }
}

Main.java

public class Main
{
    /**
     * @param args
     */
    public static void main(String[] args)
    {
        Pairzor one = new Pairzor('y', 3);
        Pairzor two = new Pairzor('t', 2);

        System.out.println(one.blammy());
        System.out.println(two.blammy());
    }
}