<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>ICU4J API Comparison: ICU4J 54.1.0 with ICU4J 55.0.1</title>
<!-- Copyright 2014, IBM, All Rights Reserved. -->
</head>
<body>
<h1>ICU4J API Comparison: ICU4J 54.1.0 with ICU4J 55.0.1</h1>

<hr/>
<h2>Removed from ICU4J 54.1.0</h2>

<h3>Package com.ibm.icu.text</h3>
<ul>
<li><span style='color:orange'>(draft)</span> public final class <i>ScientificFormatHelper</i></li>
</ul>


<hr/>
<h2>Deprecated or Obsoleted in ICU4J 55.0.1</h2>

<h3>Package com.ibm.icu.text</h3>
<ul>
IDNA
<ul>
<li><span style='color:gray'>(deprecated)</span> public static final int ALLOW_UNASSIGNED</li>
<li><span style='color:gray'>(deprecated)</span> public static int <i>compare</i>(UCharacterIterator, UCharacterIterator, int)</li>
<li><span style='color:gray'>(deprecated)</span> public static int <i>compare</i>(java.lang.String, java.lang.String, int)</li>
<li><span style='color:gray'>(deprecated)</span> public static int <i>compare</i>(java.lang.StringBuffer, java.lang.StringBuffer, int)</li>
<li><span style='color:gray'>(deprecated)</span> public static java.lang.StringBuffer <i>convertIDNToASCII</i>(UCharacterIterator, int)</li>
<li><span style='color:gray'>(deprecated)</span> public static java.lang.StringBuffer <i>convertIDNToASCII</i>(java.lang.String, int)</li>
<li><span style='color:gray'>(deprecated)</span> public static java.lang.StringBuffer <i>convertIDNToASCII</i>(java.lang.StringBuffer, int)</li>
<li><span style='color:gray'>(deprecated)</span> public static java.lang.StringBuffer <i>convertIDNToUnicode</i>(UCharacterIterator, int)</li>
<li><span style='color:gray'>(deprecated)</span> public static java.lang.StringBuffer <i>convertIDNToUnicode</i>(java.lang.String, int)</li>
<li><span style='color:gray'>(deprecated)</span> public static java.lang.StringBuffer <i>convertIDNToUnicode</i>(java.lang.StringBuffer, int)</li>
<li><span style='color:gray'>(deprecated)</span> public static java.lang.StringBuffer <i>convertToASCII</i>(UCharacterIterator, int)</li>
<li><span style='color:gray'>(deprecated)</span> public static java.lang.StringBuffer <i>convertToASCII</i>(java.lang.String, int)</li>
<li><span style='color:gray'>(deprecated)</span> public static java.lang.StringBuffer <i>convertToASCII</i>(java.lang.StringBuffer, int)</li>
<li><span style='color:gray'>(deprecated)</span> public static java.lang.StringBuffer <i>convertToUnicode</i>(UCharacterIterator, int)</li>
<li><span style='color:gray'>(deprecated)</span> public static java.lang.StringBuffer <i>convertToUnicode</i>(java.lang.String, int)</li>
<li><span style='color:gray'>(deprecated)</span> public static java.lang.StringBuffer <i>convertToUnicode</i>(java.lang.StringBuffer, int)</li>
</ul>
</ul>


<hr/>
<h2>Changed in ICU4J 55.0.1 (old, new)</h2>
<p>(no API changed)</p>

<hr/>
<h2>Promoted to stable in ICU4J 55.0.1</h2>
<p>(no API promoted to stable)</p>

<hr/>
<h2>Added in ICU4J 55.0.1</h2>

<h3>Package com.ibm.icu.text</h3>
<ul>
<li><span style='color:orange'>(draft)</span> public final class <i>ScientificNumberFormatter</i></li>
</ul>

<h3>Package com.ibm.icu.util</h3>
<ul>
LocaleData.MeasurementSystem
<ul>
<li><span style='color:orange'>(draft)</span> public static final LocaleData.MeasurementSystem UK</li>
</ul>
</ul>

<hr/>
<p><i><font size="-1">Contents generated by ReportAPI tool on Mon Dec 15 14:14:50 EST 2014<br/>Copyright (C) 2014, International Business Machines Corporation, All Rights Reserved.</font></i></p>
</body>
</html>
