如果它在 ArrayList 中,如何基于 Char 拆分 String?
How to split String based on a Char, if it is in an ArrayList?
我有一个数组列表,其数据结构如下:
ArrayList<String> payments = new ArrayList<>();
payments.add("Sam|gbp|10000.0");
payments.add("John|usd|-100000.0");
payments.add("Hannah|BTC|20.0");
payments.add("Halim|btc|-50.0");
我想获取每一行,然后将其拆分,但行不通。
for (String payment : payments) {
String[] data = payment.split("|");
System.out.println(data[2]);
// Gives a list of characters.
}
如何拆分每一行并在每一行中取出数据。
例如,检查正在使用的货币。
问题与列表无关。这是 split
命令。该参数不是“在此字符串上拆分”。参数实际上是一个正则表达式。 |
对于 'or' 是常规的 expression-ese,例如,我左边的东西,或者我右边的东西。鉴于它的左边和右边什么都没有,它等同于 .split("")
,即给出一个字符列表。
解决办法是写一个匹配|
符号的正则表达式:payment.split("\|")
就可以了。作为一般原则,payment.split(Pattern.quote("|"))
也有效 - 并且是解决问题的通用方法:“我想拆分这个确切的文本,不管那个文本是什么” - 要求正则表达式库转义任何需要转义的内容, 使用其 quote
方法。
首先,您正在使用拆分参数触发正则表达式。
正确的用法是String[] data = payment.split("\|");
然后,要获取您的货币,请使用 System.out.println(data[1]);
。
List- 和 Array-Indices 以 0 开头,因此您需要的第二个字段
可以通过 [1]
.
访问
如果你使用 Java 8,你可以
List<String> btcUsers =
payments
.stream()
.filter(
payment -> payment.split("\|")[1]
.toLowerCase(Locale.ROOT)
.equals("btc"))
.toList();
结果是
System.out.println(btcUsers);
[Hannah|BTC|20.0, Halim|btc|-50.0]
您应该记住,split 函数采用正则表达式模式,与 PHP 不同。所以你需要像下面这样的转义字符
String[] data = payment.split("\|");
我有一个数组列表,其数据结构如下:
ArrayList<String> payments = new ArrayList<>();
payments.add("Sam|gbp|10000.0");
payments.add("John|usd|-100000.0");
payments.add("Hannah|BTC|20.0");
payments.add("Halim|btc|-50.0");
我想获取每一行,然后将其拆分,但行不通。
for (String payment : payments) {
String[] data = payment.split("|");
System.out.println(data[2]);
// Gives a list of characters.
}
如何拆分每一行并在每一行中取出数据。
例如,检查正在使用的货币。
问题与列表无关。这是 split
命令。该参数不是“在此字符串上拆分”。参数实际上是一个正则表达式。 |
对于 'or' 是常规的 expression-ese,例如,我左边的东西,或者我右边的东西。鉴于它的左边和右边什么都没有,它等同于 .split("")
,即给出一个字符列表。
解决办法是写一个匹配|
符号的正则表达式:payment.split("\|")
就可以了。作为一般原则,payment.split(Pattern.quote("|"))
也有效 - 并且是解决问题的通用方法:“我想拆分这个确切的文本,不管那个文本是什么” - 要求正则表达式库转义任何需要转义的内容, 使用其 quote
方法。
首先,您正在使用拆分参数触发正则表达式。
正确的用法是String[] data = payment.split("\|");
然后,要获取您的货币,请使用 System.out.println(data[1]);
。
List- 和 Array-Indices 以 0 开头,因此您需要的第二个字段
可以通过 [1]
.
如果你使用 Java 8,你可以
List<String> btcUsers =
payments
.stream()
.filter(
payment -> payment.split("\|")[1]
.toLowerCase(Locale.ROOT)
.equals("btc"))
.toList();
结果是
System.out.println(btcUsers);
[Hannah|BTC|20.0, Halim|btc|-50.0]
您应该记住,split 函数采用正则表达式模式,与 PHP 不同。所以你需要像下面这样的转义字符
String[] data = payment.split("\|");