是否有一些货币转换器库可以将值从特定货币转换为另一种货币?或者我应该为此实现我的how类?
如果有人有某种例子,那就太好了......
理想情况下,由于货币的动态特性,您不应编写自己的公式来转换货币。访问一些公共 API 将是一个好主意,这些 API 可以可靠地用于进行货币转换。此类 API 之一是Yahoo货币转换器 API。雅虎 API 非常简单。获取两种货币之间当前汇率的基本一般请求如下所示:
http://download.finance.yahoo.com/d/quotes.csv?s=[From Currency][To Currency]=X&f=l1&e=.cs
例如,为了获得美元和以色列谢克尔之间的当前货币汇率,应构造以下请求:
http://download.finance.yahoo.com/d/quotes.csv?s=USDILS=X&f=l1&e=.cs
获取货币汇率信息非常简单。它从定义通用转换器行为的基本接口开始:
public interface CurrencyConverter {
public float convert(String currencyFrom, String currencyTo) throws Exception;
}
以及带有显示其用法的基本主应用程序的实现类:
import org.apache.http.client.ResponseHandler;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.BasicResponseHandler;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import java.io.IOException;
public class YahooCurrencyConverter implements CurrencyConverter
{
public float getConversionRate(String from, String to) throws IOException
{
HttpClientBuilder builder = HttpClientBuilder.create();
try (CloseableHttpClient httpclient = builder.build())
{
HttpGet httpGet = new HttpGet("http://quote.yahoo.com/d/quotes.csv?s=" + from + to + "=X&f=l1&e=.csv");
ResponseHandler<String> responseHandler = new BasicResponseHandler();
String responseBody = httpclient.execute(httpGet, responseHandler);
return Float.parseFloat(responseBody);
}
}
public static void main(String[] arguments) throws IOException
{
YahooCurrencyConverter yahooCurrencyConverter = new YahooCurrencyConverter();
float current = yahooCurrencyConverter.getConversionRate("USD", "ILS");
System.out.println(current);
}
}
重要提示:除非您不付款,否则 Yahoo 或任何其他提供商没有义务提供此类 API。因此,您可能需要寻找一些付费 API,以防您根据它们构建商业应用程序。或者您需要保持警惕,以确保免费 API 已为您正常启动和运行
你可以看看货币转换器库。
Currency Converter 是一个提供货币转换 API 的 Java 库。它使用不同的银行网络服务来获取利率,并为任何支持的网络服务提供单一的编程接口。
目前支持以下 Web 服务:
- 银行-ua.com
- GoogleFinance 网络服务目前正在开发中
采取的例子:
// create an instance where USD is a default currency to convert from, and EUR a default one to convert to
// Using one of the implementation: BankUaCom
CurrencyConverter currencyConverter = new BankUaCom(Currency.USD, Currency.EUR);
// convert USD to EUR (the first parameter is amount of money you'd like to convert)
currencyConverter.convertCurrency(1f);
// the same
currencyConverter.convertCurrency(1f, Currency.EUR);
// the same
currencyConverter.convertCurrency(1f, Currency.USD, Currency.EUR);
// convert EUR to USD
currencyConverter.convertCurrency(1f, Currency.EUR, Currency.USD);
// and you can continue with any other supported currencies...
您想在线转换或之前输入特定值?也许这会有所帮助: http: //www.panticz.de/Simple-Java-currency-converter