我正在尝试按以下格式打印我的字符串。 ua、登录、登录 ---> ua、导航、故障平均 = 500 毫秒
。我将这 2 个字符串存储到一个名为 keyString
的字符串中,并将其放入由 "|"
分隔的 HashMap 中。然后,当我迭代 key 集以使其采用我最初规定的格式时,我将其拆分,但它显示为 ---> ua, ctiq, export|ua, ctiq export, transfer Average = 600 毫秒
。有什么想法吗?
public static void ProcessLines(Map<String, NumberHolder> uaCount,String firstLine, String secondLine) throws ParseException
{
String [] arr1 = firstLine.split("-- ", 2);
String [] arr2 = secondLine.split("-- ", 2);
String str1 = arr1[1];
String str2 = arr2[1];
......
String keyString = str1 + "|" + str2;
NumberHolder hashValue = uaCount.get(keyString);
if(hashValue == null)
{
hashValue = new NumberHolder();
uaCount.put(keyString, hashValue);
}
hashValue.sumtime_in_milliseconds += diffMilliSeconds;
hashValue.occurences++;
public static class NumberHolder
{
public int occurences;
public int sumtime_in_milliseconds;
}
这是打印部分
for(String str : uaCount.keySet())
{
String [] arr = str.split("|",2);
long average = uaCount.get(str).sumtime_in_milliseconds / uaCount.get(str).occurences;
//System.out.println(str);
System.out.println(arr[0] + " ---> " + arr[1] + " Average = " + average + " milliseconds");
}
最佳答案
split
使用正则表达式来匹配要分割的位置,在“RegEx”中 |
表示 OR。要使用 |
作为文字,您需要使用 \
对其进行转义,在字符串中写为 "\\"
。或者,您可以使用[|]
。尝试一下
str.split("\\|",2);
关于java - 打印分割字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15744643/