-1

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

正如@dasblinkenlight 所指出的,如果输入是 (y,3),(t,2) 并且我希望输出为 "yPP","tP" ,其中字符串应该具有给定数值的长度。所以取字符后,剩下的长度由P填充。

假设我有静态方法,

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

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

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

应该返回字符串数组

{"ePPP", "nP"}

希望这可以帮助 :)

4

3 回答 3

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[]并做任何你想做的事

于 2013-08-08T16:50:08.457 回答
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;
}
于 2013-08-08T17:43:20.950 回答
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();
    }
}

主.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());
    }
}
于 2013-08-08T18:39:06.573 回答