From 82af876560fcddad8bdc9b7dd3765de31a23b69d Mon Sep 17 00:00:00 2001 From: Martin Eyben Date: Tue, 19 Nov 2024 11:15:56 +0100 Subject: [PATCH] fix: column size with special char (ugly) --- src/main/java/eirb/pg203/WeatherDisplayBasic.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) 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); } }