首页 > 解决方案 > 字符串开头的Java不可见空格

问题描述

我想从文件中读取一个字符串。字符串包含几个用空格分隔的浮点数。然后我想把它分成几个字符串,每个字符串包含一个数字并将它们解析为加倍。numbers.length() 显示我的字符串比文件中的实际长度长 1 个符号。而这个符号是我无法摆脱的无形空白。数组中的第一个元素也有,而 trim() 没有帮助。我试图修剪数组中的每个元素,没有帮助。由于这个空格,我无法将此数组解析为数字,我遇到了异常。我看到只有当我将字符串数字或数组的第一个元素拆分为字符时,这实际上是开头的空格。初级程序员在这里。

    BufferedReader reader1 = new BufferedReader(new InputStreamReader(System.in));
    String file1 = reader1.readLine();
    reader1.close();

    BufferedReader reader2 = new BufferedReader(new FileReader(file1));
    String numbers = reader2.readLine();
    reader2.close();
    System.out.println(numbers.length());

    String[] array = numbers.trim().split("\\s+");

标签: javastring

解决方案


第一行 输出 类的完整代码。我添加了我在 IDEA 中得到的内容。打印数组 [0] 中的 '4' 之前的空格或任何内容是我的问题。

41 4234.234 9 2341.452 8 98234.4 7 2378.34 7 114.32 6

4 2 3 4 。2 3 4

进程以退出代码 0 结束

public class Solution {
public static void main(String[] args) throws IOException{

    BufferedReader reader1 = new BufferedReader(new InputStreamReader(System.in));
    String file1 = reader1.readLine();
    reader1.close();

    BufferedReader reader2 = new BufferedReader(new FileReader(file1));
    String numbers = reader2.readLine();
    reader2.close();
    System.out.println(numbers.length());

    String[] array = numbers.trim().split("\\s+");

    for(int i = 0; i < array.length; i++) {
        System.out.println(array[i] + " " + array[i].length());
    }
    char[] ch = array[0].toCharArray();
    for(char c:ch) {
        System.out.println(c);
    }
}

}


推荐阅读