如何在Android中将字符转换为布尔二维数组?

时间:2012-09-03 04:23:27

标签: java android boolean type-conversion

我正在开发一个需要在Android中将角色转换为二维数组的项目。例如,如果我有字符(或字符串)" A",我必须创建一个二维数组,如下所示:

[0,0,1,0,0]   
[0,1,0,1,0]    
[0,1,0,1,0]    
[1,0,0,0,1]    
[1,1,1,1,1]    
[1,0,0,0,1]    
[0,0,0,0,0]

图形:

enter image description here

我该如何处理这个问题?

2 个答案:

答案 0 :(得分:1)

您可以尝试以下内容:

String str = "ABC";
List<byte[][]> codedString = new ArrayList<byte[][]>();

for ( char c : str.toCharArray() ) {

    switch ( c ) {

        case 'A':
            codedString.add( new byte[][]{
                { 0, 0, 1, 0, 0 },
                { 0, 1, 0, 1, 0 },
                { 0, 1, 0, 1, 0 },
                { 1, 0, 0, 0, 1 },
                { 1, 1, 1, 1, 1 },
                { 1, 0, 0, 0, 1 },
                { 0, 0, 0, 0, 0 } } );
            break;

        case 'B':
            codedString.add( new byte[][]{
                { 1, 1, 1, 1, 0 },
                { 1, 0, 0, 0, 1 },
                { 1, 0, 0, 0, 1 },
                { 1, 1, 1, 1, 0 },
                { 1, 0, 0, 0, 1 },
                { 1, 0, 0, 0, 1 },
                { 1, 1, 1, 1, 0 } } );
            break;

        case 'C':
            codedString.add( new byte[][]{
                { 0, 1, 1, 1, 0 },
                { 1, 0, 0, 0, 1 },
                { 1, 0, 0, 0, 0 },
                { 1, 0, 0, 0, 0 },
                { 1, 0, 0, 0, 0 },
                { 1, 0, 0, 0, 1 },
                { 0, 1, 1, 1, 0 } } );
            break;

    }

}

for ( byte[][] codedChar : codedString ) {
    for ( int i = 0; i < codedChar.length; i++ ) {
        for ( int j = 0; j < codedChar[i].length; j++ ) {
            System.out.print( codedChar[i][j] == 1 ? "X" : " " );
        }
        System.out.println();
    }
}

您需要对所有模式进行硬编码。

修改:我将代码更改为使用零和1来表示模式。它比使用布尔语更容易阅读。

答案 1 :(得分:0)

如果我的问题是正确的,那么您正试图在5x7像素网格中表示每个字符。一种方法是在硬编码的地图中存储所有字符('A'到'Z'以及更多,如果你需要的话),并根据需要返回/访问它们。