diff --git a/src/main/java/eirb/pg203/WeatherDisplayBasic.java b/src/main/java/eirb/pg203/WeatherDisplayBasic.java index abb6199..d224da1 100644 --- a/src/main/java/eirb/pg203/WeatherDisplayBasic.java +++ b/src/main/java/eirb/pg203/WeatherDisplayBasic.java @@ -30,9 +30,12 @@ class WeatherDisplayBasic implements WeatherDisplay { double max = 0; for (WeatherDataAPI api: weatherDataAPIArrayListHashMap.keySet()) { for (WeatherData w: weatherDataAPIArrayListHashMap.get(api)){ - max = Math.max(max, w.toString().length()); + // real str len with special chars + int strLen = w.toString().codePointCount(0, w.toString().length()); + max = Math.max(max, strLen); } } + return max; } @@ -83,14 +86,16 @@ class WeatherDisplayBasic implements WeatherDisplay { double sourceColumnSize = dayColumnSize; + double dayColumnSizeSeparator = dayColumnSize - 1; // because arrows change string len but not display len TODO + // Header displayHeader(days, sourceColumnSize, dayColumnSize); - this.displaySeparatorLine(days, sourceColumnSize, dayColumnSize); + this.displaySeparatorLine(days, sourceColumnSize, dayColumnSizeSeparator); // Apis for (WeatherDataAPI api: weatherDataAPIArrayListHashMap.keySet()) { displayWeatherDatas(api.getAPIName(), weatherDataAPIArrayListHashMap.get(api), startColumnString, sourceColumnSize, dayColumnSize); - this.displaySeparatorLine(days, sourceColumnSize, dayColumnSize); + this.displaySeparatorLine(days, sourceColumnSize, dayColumnSizeSeparator); } }