diff --git a/libcore/luni/src/main/java/java/util/Scanner.java b/libcore/luni/src/main/java/java/util/Scanner.java
index 8ce1299..fbbf666 100644
--- a/libcore/luni/src/main/java/java/util/Scanner.java
+++ b/libcore/luni/src/main/java/java/util/Scanner.java
@@ -1642,14 +1642,12 @@
      */
     @Override
     public String toString() {
-        StringBuilder stringBuilder = new StringBuilder();
-        stringBuilder.append(this.getClass()).append(": ") //$NON-NLS-1$
-                .append("{(delimiter:") //$NON-NLS-1$
-                .append(delimiter).append(")(findStartIndex=") //$NON-NLS-1$
-                .append(findStartIndex).append(")(match succeed=") //$NON-NLS-1$
-                .append(matchSuccessful).append(")(closed=") //$NON-NLS-1$
-                .append(closed).append(")}"); //$NON-NLS-1$
-        return stringBuilder.toString();
+        return getClass().getName() +
+                "[delimiter=" + delimiter +
+                ",findStartIndex=" + findStartIndex +
+                ",matchSuccessful=" + matchSuccessful +
+                ",closed=" + closed +
+                "]";
     }
 
     /**
diff --git a/libcore/text/src/main/java/java/text/DateFormatSymbols.java b/libcore/text/src/main/java/java/text/DateFormatSymbols.java
index fe63829..04ea750 100644
--- a/libcore/text/src/main/java/java/text/DateFormatSymbols.java
+++ b/libcore/text/src/main/java/java/text/DateFormatSymbols.java
@@ -249,7 +249,8 @@
     public String toString() {
         // 'locale' isn't part of the externally-visible state.
         // 'zoneStrings' is so large, we just print a representative value.
-        return getClass() + "[amPmStrings=" + Arrays.toString(ampms) +
+        return getClass().getName() +
+                "[amPmStrings=" + Arrays.toString(ampms) +
                 ",customZoneStrings=" + customZoneStrings +
                 ",eras=" + Arrays.toString(eras) +
                 ",localPatternChars=" + new String(localPatternChars) +
diff --git a/libcore/text/src/main/java/java/text/DecimalFormatSymbols.java b/libcore/text/src/main/java/java/text/DecimalFormatSymbols.java
index 05ffda7..8015c9d 100644
--- a/libcore/text/src/main/java/java/text/DecimalFormatSymbols.java
+++ b/libcore/text/src/main/java/java/text/DecimalFormatSymbols.java
@@ -188,7 +188,8 @@
     public String toString() {
         // Most of the externally-visible state is stashed in 'patternChars', and not obviously
         // worth breaking out individually, since this is only meant for debugging.
-        return getClass() + "[patternChars=" + new String(patternChars) +
+        return getClass().getName() +
+                "[patternChars=" + new String(patternChars) +
                 ",infinity=" + infinity +
                 ",currencySymbol=" + currencySymbol +
                 ",intlCurrencySymbol=" + intlCurrencySymbol +
