如何删除从Excel导入的String中的空格

时间:2015-01-15 08:51:28

标签: java jxl

我需要从字符串中删除所有白色字符,但我无法这样做。 任何人都知道如何做到这一点?

这是我通过jxl API从excel文件中检索到的字符串:

"Destination à gauche"

这是它的字节:

6810111511610511097116105111110-96-32321039711799104101

我使用的代码来删除空格:

public static void checkEntetes(Workbook book) {
        String sheetName = "mysheet";
        System.out.print(sheetName + " : ");
        for(int i = 0; i < getColumnMax(book.getSheet(sheetName)); i++) {
            String elementTrouve = book.getSheet(sheetName).getCell(i, 0).getContents();
            String fileEntete = new String(elementTrouve.getBytes()).replaceAll("\\s+","");
            System.out.println("\t" + elementTrouve + ", " + bytesArrayToString(elementTrouve.getBytes()));
            System.out.println("\t" + fileEntete + ", " + bytesArrayToString(fileEntete.getBytes()));
        }
        System.out.println();
}

这输出:

"Destination à gauche", 6810111511610511097116105111110-96-32321039711799104101
"Destination àgauche", 6810111511610511097116105111110-96-321039711799104101

我甚至试图自己制作它,它仍然在'à'char之前留下一个空格。

public static String removeWhiteChars(String s) {
    String retour = "";
    for(int i = 0; i < s.length(); i++) {
        char c = s.charAt(i);
        if(c != (char) ' ') {
            retour += c;
        }
    }
    return retour;
}

2 个答案:

答案 0 :(得分:1)

救援的正则表达式:

str = str.replaceAll("\\s+", "")

将删除任何空格字符序列。例如:

String input = "Destination à gauche";
String output = input.replaceAll("\\s+","");
System.out.println("output is \""+output+"\"");

输出Destinationàgauche

如果您的起点确实是原始字节(byte[]),您首先需要将它们变成一个字符串:

byte[] inputData = //get from somewhere
String stringBefore = new String(inputData, Charset.forName("UTF-8")); //you need to know the encoding
String withoutSpaces = stringBefore.replaceAll("\\s+","");
byte[] outputData = withoutSpaces.getBytes(Charset.forName("UTF-8"));

答案 1 :(得分:0)

如果您想使用公式,TRIM功能将完全符合您的要求:

+----+------------+---------------------+
|    |     A      |           B         |
+----+------------+---------------------+
| 1  | =TRIM(B1)  |  value to trim here |
+----+------------+---------------------+

所以要做整个专栏。 1)插入一列 2)插入TRIM函数指向您正在尝试更正的单元格。 3)将公式复制到页面上 4)复制插入的列 5)粘贴为“值”

参考:stackoverflow.com上的问题编号9578397