我想在java中获得2维数组的位置。
目的:我从CSV文件中获取此二维数组以进行验证。所以我想通过提及它的Cell位置来确定哪一个是无效的。
示例:
A B C D E
1 a b c d e
2 f g h i j
3 K L M N 2 O
4 点q的Kr小号
如果我用上面的输入给代码中的'h',它应该给我C2。这方面的API非常有用。
有人可以帮我吗?
答案 0 :(得分:0)
Apache POI应该可以帮助您进行Excel操作
答案 1 :(得分:0)
使用以下方法可获得更好的效果。
private static String ConvertColumnNumberToChars( int i ){
if( i < 0 )
throw new UnsupportedOperationException("Converted number must be greater than zero.");
int iBase = 'Z' - 'A'+1;
if( iBase > Character.MAX_RADIX )
throw new UnsupportedOperationException("This JRE can't convert to radix greater than "+Character.MAX_RADIX);
String interConversion = Integer.toString(i-1, iBase).toUpperCase();
//System.out.print("inter: "+ interConversion +"; ");
char[] ac = interConversion.toCharArray();
for( int j = 0; j < ac.length; j++ ) {
int poziceOdzadu = ac.length - j - 1;
char c = ac[j];
ac[j] = (char) ('A' - poziceOdzadu + Character.digit( c, iBase ));
}
return String.copyValueOf( ac );
}
您要做的就是为此方法输入一个想要更改为列名的int值。
字符串值的行号+ 1是CSV文件的行号,ConvertColumnNumberToChars(Number + 1)是列字符名称。
祝你好运!