我是java的初学者,我有以下
flybirdy_blue.co
strongwolf_red.po
我想要这样的结果
blue
red
String[] parts = csvFile.split("_");
String color = parts[1];
但它给我错误的结果
答案 0 :(得分:1)
你正在分裂" _" ,但你需要进一步分裂"。" ..
所以试试,
String[] parts = csvFile.split("_");
String color = parts[1].split(".")[1];
或者你可以试着分开_& 。同时使用" []"在"字符类&#34中解释here;部分:
String[] parts = csvFile.split("[_.]");
String color = parts[1];
答案 1 :(得分:1)
你可以使用它:
String s = "flybirdy_blue.po";
Pattern pattern = Pattern.compile("(_)(.+)(\\.)");
Matcher matcher = pattern.matcher(s);
if (matcher.find()) {
System.out.println(matcher.group(2)); //red
}
答案 2 :(得分:1)
也许你应该编写自己的函数以便更好地理解:
public ArrayList<String> splitMyString(String wholeString, char[] splitHere){
ArrayList<String> response = new ArrayList<String>();
String temp ="";
boolean skip = false;
for(int i = 0 ; i < wholeString.length(); i++){
for(int j = 0 ; j < splitHere.length; j++){
if(wholeString.charAt(i) == splitHere[j]){
response.add(temp);
temp="";
skip = true;
}
}
if(skip != true){
temp = temp +wholeString.charAt(i);
}else{
skip = false;
}
}
response.add(temp);
return response;
}
答案 3 :(得分:0)
您可以使用substring()
函数获取“_”和“。”之间的值。如下。
你走了:
String firstcsvFile = "flybirdy_blue.co";
String secondcsvFile = "strongwolf_red.po";
String result = firstcsvFile.substring(firstcsvFile.indexOf("_") + 1, firstcsvFile.indexOf("."));
String result2 = secondcsvFile.substring(secondcsvFile.indexOf("_") + 1, secondcsvFile.indexOf("."));
System.out.println(result);
System.out.println(result2);
输出
蓝色
红色