[英]Removing special characters from string
我想將此字符串解析為一個列表,然后返回{1.193493、54.6333、2.093077、31.6235、6.175355、21.6479}。 如何擺脫方括號???? 我使用了for循環和替換,但是它不起作用。
String st = "[[[1.193493,54.6333],[2.093077,31.6235],[6.175355,21.6479]]]"
String[] parsed = st.split(",");
for (String next : parsed) {
next.replace("//[", "").replace("//]", "");
}
replace()
適用於純字符串,不適用於正則表達式。 因此,您可以簡單地使用:
next.replace("[", "").replace("]", "");
還要注意,您需要將其分配給一些字符串變量; 將其分配給need
將不起作用(不會修改parsed
數組中的元素)。
實際上,您應該先刪除括號然后再split
,如下所示:
String[] parsed = st.replace("[", "").replace("]", "").split(",");
您可以使用一行來完成此操作:
List<String> list = Arrays.asList(t.replaceAll("\\[", "").replaceAll("\\]", "").split(","));
完整代碼:
package com.stackoverflow;
import java.util.Arrays;
import java.util.List;
public class Demo
{
public static void main(String[] args)
{
String t = "[[[1.193493,54.6333],[2.093077,31.6235],[6.175355,21.6479]]]";
List<String> list = Arrays.asList(t.replaceAll("\\[", "").replaceAll("\\]", "").split(","));
for(String s : list)
{
System.out.println(s);
}
}
}
將字符串轉換為字符串列表並打印。 如果需要將字符串轉換為雙精度型,請在循環中使用Double.parseDouble(s)
。
您可以使用此正則表達式一次完成所有操作:
(?:\D*(\d*\.\d*))+
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.