相关疑难解决方法(0)

为什么非破坏空间不是java中的空白字符?

在寻找一种从解析的HTML中修剪不间断空间的正确方法的同时,我首先偶然发现java的斯巴达定义String.trim()至少是正确记录的.我想避免明确列出符合修剪条件的字符,所以我假设在Character类上使用Unicode支持的方法可以帮我完成工作.

那时我发现Character.isWhitespace(char)明确排除了不间断的空格:

它是Unicode空格字符(SPACE_SEPARATOR,LINE_SEPARATORPARAGRAPH_SEPARATOR),但不也是非打破空间('\u00A0','\u2007','\u202F').

这是为什么?

相应的.NET等价物的实现不那么有区别.

java unicode

30
推荐指数
5
解决办法
3万
查看次数

Java String trim无效

Java String trim不会为我删除空格字符.

String rank = (some method);
System.out.println("(" + rank + ")");
Run Code Online (Sandbox Code Playgroud)

输出是(1 ).注意1右边的空格.

我必须从字符串中删除尾随空格,rank但既不删除它rank.trim()也不rank.replace(" ","")删除它.

rank无论哪种方式,字符串都保持不变.

编辑:完整代码 ::

Document doc = Jsoup.connect("http://www.4icu.org/ca/").timeout(1000000).get();
Element table = doc.select("table").get(7);
Elements rows = table.select("tr");
for (Element row: rows) {
  String rank = row.select("span").first().text().trim();
  System.out.println("("+rank+")");
}
Run Code Online (Sandbox Code Playgroud)

为什么我不能删除那个空间?

java string unicode spaces trim

19
推荐指数
2
解决办法
3万
查看次数

如何在Java 8/JSR 310/threeten.org中处理ISO-8601时间戳中的'可选'T?

在Java 8时代/ JSR 310/threeten.org backport ...

问:如何在日期部分和时间部分之间用"T"或"空格"解析ISO-8601时间戳?

时间戳的ISO-8601格式指定文本"T"以将日期规范与时间规范分开:

2015-05-12T15:42:00.123
Run Code Online (Sandbox Code Playgroud)

许多应用程序以这种格式生成时间戳,空格为'char而不是'T'.参考文献表明ISO-8601通过相互协议允许这一点.

2015-05-12 15:42:00.123
Run Code Online (Sandbox Code Playgroud)

因为我从多个来源摄取数据,我想要允许'T'或空格''.

我观察到模式字符串允许指定可选组件,但我没有看到任何方式在模式字符串中指定"选择"...

问:有没有办法在JSR 310模式字符串中"选择一个完全一个"?

我能够通过构造一个带有两个可选模式的DateTimeFormatter来实现这个目的:

DateTimeFormatter dateTimeFormatter = new DateTimeFormatterBuilder()
    .appendOptional(DateTimeFormatter.ISO_LOCAL_DATE_TIME)
    .optionalStart().appendPattern("yyyy-MM-dd HH:mm:ss.SSS").optionalEnd()
    .toFormatter();
Run Code Online (Sandbox Code Playgroud)

看到optionalStart()和optionalEnd()导致我:

DateTimeFormatter dateTimeFormatter = new DateTimeFormatterBuilder()
    .appendPattern("[yyyy-MM-dd HH:mm:ss.SSS][yyyy-MM-dd'T'HH:mm:ss.SSS]")
    .toFormatter();
Run Code Online (Sandbox Code Playgroud)

但是,我不相信这是处理这种情况的正确方法......

问:处理多个DateTime模式的最佳实践解决方案是什么?

提前致谢.

java datetime java-8 java-time

12
推荐指数
1
解决办法
2574
查看次数

在Java中将带空格的String转换为Integer

我正在尝试将String变量转换为整数,只有String看起来像这样(例如):

String string = " 12";
Run Code Online (Sandbox Code Playgroud)

因此String在它前面有一个空格.现在正在从.txt文件中读取String变量,这就是为什么我遇到了在它前面有空间的问题.我需要将变量转换为int,但是当我尝试时:

int integer = Integer.parseInt(string);
Run Code Online (Sandbox Code Playgroud)

要将String传递给一个整数,它会编译,但是在尝试运行程序时会出错,因为作为String的一部分有空格.

有没有办法将带有前面空格的数字串传递给int?.trim会工作吗?如果是这样,我将如何使用它?(我对.trim不是很熟悉,我还在学习!!)我很感激你的帮助!^ _ ^

java string integer

11
推荐指数
3
解决办法
2万
查看次数

在最新版本的Java中修剪空白的更现代的方法

这样的问题讨论限制在使用的逻辑String::trim方法.一些像Guava这样的图书馆提供了替代品.

我隐约记得最新版本的Java(8,9,10)附带了一种替代的,更现代的Unicode -savvy方法来定义和删除文本中的空白字符.

现在是否有与Java捆绑的设施?

java string whitespace java-8 java-9

5
推荐指数
0
解决办法
107
查看次数

标签 统计

java ×5

string ×3

java-8 ×2

unicode ×2

datetime ×1

integer ×1

java-9 ×1

java-time ×1

spaces ×1

trim ×1

whitespace ×1