Java 如何删除从Excel导入的字符串中的空白

Java 如何删除从Excel导入的字符串中的空白,java,jxl,Java,Jxl,我需要从字符串中删除所有白色字符,但我无法这样做。 有人知道怎么做吗 以下是通过jxl API从excel文件检索到的字符串: "Destination à gauche" 下面是它的字节: 6810111511610511097116105111110-96-32321039711799104101 下面是我用来删除空白的代码: public static void checkEntetes(Workbook book) { String sheetName = "mysh

我需要从字符串中删除所有白色字符,但我无法这样做。 有人知道怎么做吗

以下是通过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();
}
我甚至试着自己做,但在“a”字符之前仍然留有一个空间

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;
}
publicstaticstringremovewitechars(strings){
字符串retour=“”;
对于(int i=0;i
要拯救的正则表达式:

str = str.replaceAll("\\s+", "")
将删除任何空格字符序列。例如:

String input = "Destination à gauche";
String output = input.replaceAll("\\s+","");
System.out.println("output is \""+output+"\"");
输出<代码>目的地>/code>

如果您的起点确实是原始字节(
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"));

如果您想使用公式,TRIM函数将完全满足您的要求:

+----+------------+---------------------+
|    |     A      |           B         |
+----+------------+---------------------+
| 1  | =TRIM(B1)  |  value to trim here |
+----+------------+---------------------+
所以我们来做整个专栏。 1) 插入一列 2) “插入修剪”功能指向您试图更正的单元格。 3) 把公式抄下来 4) 复制插入列 5) 粘贴为“值”


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

仅空格还是全部空格?对于空格,您只需执行
str.replace(“,”)我需要删除所有空白。这不起作用,因为它不会删除“a”字符前的空格。您是否检查了该字符的值,它可能会呈现为空白,但不是使用
\s
选择的空白字符,但这将是一个让您难以实现的问题。我用它,但只用于数字,所以法定字符集非常小。谢谢提醒!我有时间的时候会去调查的!我认为它来自字符串的编码。目的地??戈什,6810111511610511097116105111110-17-65-67-17-65-671039711799104101是我得到的。还不知道。我正在寻找答案,一旦找到了答案,我将用这种编码替换UTF-8。我会让你知道的。无论如何,谢谢。使用宏不是一个选项。excel文件是只读的。无论如何,谢谢你的回答。
+----+------------+---------------------+
|    |     A      |           B         |
+----+------------+---------------------+
| 1  | =TRIM(B1)  |  value to trim here |
+----+------------+---------------------+