小编ano*_*ous的帖子

基于方括号中的值对字符串进行排序

我有一个字符串,例如:

[01:07]bbbbbbb[00:48]aaaaaa[01:36]ccccccccc[03:45]gggggggg[03:31]fffffff[01:54]ddddddddd[02:09]eeeeeee[03:59]hhhhhhhh
Run Code Online (Sandbox Code Playgroud)

这需要排序为

[00:48]aaaaaa[01:07]bbbbbbb[01:36]ccccccccc[01:54]ddddddddd[02:09]eeeeeee[03:31]fffffff[03:45]gggggggg[03:59]hhhhhhhh  
Run Code Online (Sandbox Code Playgroud)

它基于方括号内的字符串.
我怎么能在java中这样做?

java regex string

5
推荐指数
1
解决办法
330
查看次数

Java 8 localdatetime vs Date

我有一个字符串2017-07-31T01:01:00-07:00,我试图解析它到目前为止和CST时区.当我使用Date和Java 8 ZonedDateTime解析此字符串时,我得到了不同的结果.我不知道为什么会发生这种情况以及我做错了什么.

    String dateStr = "2017-07-31T01:01:00-07:00";
    LocalDateTime time = null;
    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss-hh");

    String[] dateArray = dateStr.split("-");
    String[] timeZones = TimeZone
            .getAvailableIDs(TimeZone.getTimeZone("GMT-" + dateArray[dateArray.length - 1]).getRawOffset());
    format.setTimeZone(TimeZone.getTimeZone(timeZones[0]));
    Date dateObj = null;
    try {
        dateObj = format.parse(dateStr);
    } catch (ParseException e) {
        e.printStackTrace();
    }
    time = dateObj.toInstant().atZone(TimeZone.getTimeZone("CST").toZoneId()).toLocalDateTime();
    ZonedDateTime time2 = ZonedDateTime.parse(dateStr).toInstant().atZone(TimeZone.getTimeZone("CST").toZoneId());
    System.out.println(time);
    System.out.println(time2.toLocalDateTime());
Run Code Online (Sandbox Code Playgroud)

java datetime java-8

2
推荐指数
1
解决办法
724
查看次数

如何在Spring Boot中将不同的目标动态添加到JMSListener注释?

我正在研究一个从Azure服务总线读取消息的应用程序。该应用程序是使用Spring Boot,Spring jms和Qpid jms客户端创建的。我能够从Queue正确读取消息,而没有任何问题。PFB我用来阅读消息的代码。

@Service
public class QueueReceiver {
@JmsListener(destination = "testing")
public void onMessage(String message) {
    if (null != message) {
        System.out.println("Received message from Queue: " + message);
    }
}}
Run Code Online (Sandbox Code Playgroud)

问题是,对于不同的环境,我们有不同的目的地,例如testingfor devtesting-qafor qatesting-prodfor production,所有这些值都分别azure.queueName在不同的application-(ENV).properpties中提供。我想将这些目标动态传递给JmsListener注释中的目标。当我尝试使用

@Value("${azure.queueName}")
private String dest;
Run Code Online (Sandbox Code Playgroud)

并将dest传递给注释 @JmsListener(destination = dest)

我收到The value for annotation attribute JmsListener.destination must be a constant expression错误消息。仔细检查了此错误后,我发现我们无法将动态值传递给注释。请帮助我如何解决此问题或任何其他解决方案。

java annotations spring-annotations spring-jms spring-boot

1
推荐指数
1
解决办法
2971
查看次数