Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java货币库_Java_Currency - Fatal编程技术网

Java货币库

Java货币库,java,currency,Java,Currency,是否有某种货币转换器库可以将某个值从特定货币转换为另一种货币?或者我应该为此实现我的how类 如果有人举了一些例子,那就太好了……理想情况下,由于货币的动态特性,您不应该编写自己的公式来转换货币。访问一些公共API是一个好主意,这些API可以可靠地用于货币转换。其中一个API是货币转换器API。YahooAPI非常简单。获取两种货币之间的当前货币汇率的基本通用请求如下所示: 货币][至 货币]=X&f=l1&e=.cs 例如,为了获得美元和以色列谢克尔之间的当前汇率,应构造以下请求: 获取汇率

是否有某种货币转换器库可以将某个值从特定货币转换为另一种货币?或者我应该为此实现我的how类


如果有人举了一些例子,那就太好了……

理想情况下,由于货币的动态特性,您不应该编写自己的公式来转换货币。访问一些公共API是一个好主意,这些API可以可靠地用于货币转换。其中一个API是货币转换器API。YahooAPI非常简单。获取两种货币之间的当前货币汇率的基本通用请求如下所示:

货币][至 货币]=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);
    }
}
import org.apache.http.client.ResponseHandler;
导入org.apache.http.client.methods.HttpGet;
导入org.apache.http.impl.client.BasicResponseHandler;
导入org.apache.http.impl.client.CloseableHttpClient;
导入org.apache.http.impl.client.HttpClientBuilder;
导入java.io.IOException;
公共类YahooCurrencyConverter实现CurrencyConverter
{
公共浮点getConversionRate(字符串从,字符串到)引发IOException
{
HttpClientBuilder=HttpClientBuilder.create();
try(CloseableHttpClient-httpclient=builder.build())
{
HttpGet HttpGet=新的HttpGet(“http://quote.yahoo.com/d/quotes.csv?s=“+从+到+”=X&f=l1&e=csv”);
ResponseHandler ResponseHandler=新BasicResponseHandler();
字符串responseBody=httpclient.execute(httpGet,responseHandler);
返回Float.parseFloat(responseBody);
}
}
公共静态void main(字符串[]参数)引发IOException
{
YahooCurrencyConverter YahooCurrencyConverter=新的YahooCurrencyConverter();
浮动电流=yahooCurrencyConverter.getConversionRate(“USD”、“ILS”);
系统输出打印项次(当前);
}
}

重要提示:雅虎或任何其他提供商都没有义务提供此类API,除非您不付款。因此,您可能需要寻找一些付费API,以防构建依赖它们的商业应用程序。或者您需要守夜以确保免费API为您正常启动和运行

您可以查看一下库

Currency Converter是一个Java库,它为货币提供API 转换。它使用不同的银行web服务获取利率和利率 为任何受支持的 网络服务

目前支持以下web服务:

  • bank-ua.com
  • 谷歌金融网络服务目前正在开发中
举例如下:

// 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...

您想联机转换它,还是以前输入特定值?
也许这会有所帮助:

IMO,一个由雅虎这样的大公司维护的API比你能找到的所有静态库都要好得多+1.谢谢!我会试试看:)@amp在决议中加了一句警告。请同时阅读。我也会检查:)你对付费API有什么建议吗?