小编Dea*_*ool的帖子

如何在java中根据句点“.”分割字符串

在这里,我输入一个字符串,其中用户输入带有扩展名的文件名,我想编写一个程序来给出文件的扩展名,但是当我运行这个程序时,它给出了异常 arrayindexoutofbound 异常,有什么原因吗?

导入java.util.Scanner;

public class Extensionfile {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("Enter file with data type");
        String file = sc.next();
        String parts[] = file.split(".");
        String part1 = parts[1];
        System.out.println("The file type is"+part1);

    }
}
Run Code Online (Sandbox Code Playgroud)

java

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

如何将字符数组转换为Set

如何将字符列表添加到集合中?下面的代码似乎不起作用。

HashSet<Character> vowels = new HashSet<Character>(
        new Character[] {'a', 'e', 'i', 'o', 'u', 'y'}
    );
Run Code Online (Sandbox Code Playgroud)

我看到的错误是

构造函数HashSet(Character [])未定义

我尝试了Character []和char [],但是都没有用。

java

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

使用 application.properties 中的 spring 表达式语言解析 LocalTime

我正在尝试使用以下代码从 spring 的 application.properties 解析 LocalTime:

@Value("#{ T(java.time.LocalTime).parse('${app.myDateTime}')}")
private LocalTime myDateTime;
Run Code Online (Sandbox Code Playgroud)

在 application.properties 中,我定义了这样的属性:

app.myDateTime=21:45:00
Run Code Online (Sandbox Code Playgroud)

错误信息:

Failed to bind properties under 'app.my-date-time' to java.time.LocalTime:

Property: app.my-date-time
Value: 21:45:00
Origin: class path resource [application.properties]:44:15
Reason: failed to convert java.lang.String to @org.springframework.beans.factory.annotation.Value java.time.LocalTime
Run Code Online (Sandbox Code Playgroud)

知道我做错了什么吗?谢谢你。

调试模式错误:

Caused by: org.springframework.core.convert.ConversionFailedException: Failed to convert from type [java.lang.String] to type [java.time.LocalTime] for value '21:45:00'; nested exception is java.lang.IllegalArgumentException: Parse attempt failed for value [21:45:00]
    at org.springframework.core.convert.support.ConversionUtils.invokeConverter(ConversionUtils.java:47)
    at org.springframework.core.convert.support.GenericConversionService.convert(GenericConversionService.java:191)
    at org.springframework.boot.context.properties.bind.BindConverter$CompositeConversionService.convert(BindConverter.java:170)
    at org.springframework.boot.context.properties.bind.BindConverter.convert(BindConverter.java:96)
    at org.springframework.boot.context.properties.bind.BindConverter.convert(BindConverter.java:88)
    at org.springframework.boot.context.properties.bind.Binder.bindProperty(Binder.java:313) …
Run Code Online (Sandbox Code Playgroud)

java spring spring-boot java-time application.properties

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

如何检查集合不为空且集合中的元素也不为空

我在 java 8 中使用 apache collections utils 得到的是 null:

if (CollectionUtils.isNotEmpty(reportEnvelopeApps)) {

}
Run Code Online (Sandbox Code Playgroud)

但是如果集合 reportEnvelopeApps 包含一个元素 null,它会意外地工作。所以我必须写这样的代码:

        if (reportEnvelopeApps == null) {
            return null;
        }
        reportEnvelopeApps.removeAll(Collections.singleton(null));
        if (CollectionUtils.isEmpty(reportEnvelopeApps)) {
            return null;
        }
Run Code Online (Sandbox Code Playgroud)

避免此类不良代码的更好方法是什么?

java

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

使用 SpringBoot 外部化 Spring Kafka 配置

我有这个卡夫卡配置类

@Configuration
public class KafkaConfiguration {
    @Value("${KAFKA_SERVERS}")
    private String kafkaServers;


    @Bean
    ConcurrentKafkaListenerContainerFactory<String, String> kafkaListenerContainerFactory() {
        ConcurrentKafkaListenerContainerFactory<String, String> factory = new ConcurrentKafkaListenerContainerFactory<>();
        factory.setConsumerFactory(this.consumerFactory());
        factory.setMessageConverter(new StringJsonMessageConverter());
        return factory;
    }

    public ConsumerFactory<String, String> consumerFactory() {
        return new DefaultKafkaConsumerFactory<>(this.consumerConfigs());
    }

    public Map<String, Object> consumerConfigs() {

        Map<String, Object> props = new HashMap<>();
        props.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, kafkaServers);
        props.put(ConsumerConfig.GROUP_ID_CONFIG, "foo-group-id");
        props.put(ConsumerConfig.AUTO_OFFSET_RESET_CONFIG, "latest");
        props.put(ConsumerConfig.ENABLE_AUTO_COMMIT_CONFIG, true);
        props.put(ConsumerConfig.AUTO_COMMIT_INTERVAL_MS_CONFIG, "100");
        props.put(ConsumerConfig.SESSION_TIMEOUT_MS_CONFIG, "15000");
        props.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class);
        props.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class);
        return props;
    }

    public Map<String, Object> producerConfigs() {
        Map<String, Object> props = new HashMap<>();
        props.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, kafkaServers);
        props.put(ProducerConfig.RETRIES_CONFIG, …
Run Code Online (Sandbox Code Playgroud)

java apache-kafka spring-boot spring-kafka

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

如何检查变量是否在Java中初始化?

我正在搞乱一些代码并遇到一个空指针异常,这是一个未初始化的变量的结果.所以我只是想知道:有没有办法在尝试处理它之前验证一个对象实际存在,从而避免这样的错误?

java

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

等于2个Java对象

我正在使用==运算符比较2个Java对象,有人可以解释为什么打印"b"而不是"a"?

public class punktAusfuehren {

Punkt p1 = new Punkt(19, 10);
Punkt p2 = new Punkt(5, 0);

public static void main(String[] args) {
    new punktAusfuehren();
}

public punktAusfuehren() {
    if (p1 == p2) {
        System.out.println("a");
    } else {
        System.out.println("b");
    }

    if (p1 instanceof Punkt) {
        System.out.println("c");
    } else {
        System.out.println("d");
        }

   }

 }
Run Code Online (Sandbox Code Playgroud)

java oop

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

Java基于double值对对象进行流排序

我有X1对象列表并尝试根据obj_function()返回Double值的方法对列表进行排序。

result = custom_obj_list.stream()
    .sorted((x1,x2) -> {
        return -x1.obj_function().compareTo(x2.obj_function());
    }).filter((x2) -> { 
        return x2.obj_function <= 1; 
    }).collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)

但我正在努力解决以下错误消息

stream().sorted() 无法解析符号或无法解析方法

java lambda java-stream

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

为什么 java Arrays.binarySearch 返回奇怪的结果?

在标准 Java 11 库中,如果未找到元素,方法应返回:

...大于键的第一个元素的索引...

在 Java 11 上,此示例打印 17

int[] data = new int[] {2, 4, 5, 12, 17, 19};
System.out.println(data[-1 *Arrays.binarySearch(data, 6)]);
Run Code Online (Sandbox Code Playgroud)

在这个代码示例中,第一个大于 6 的元素是 12,但它返回索引 17。为什么?

java

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

如何在java-8中找到流类型

我有使用Streamobject作为参数的方法,在该方法中我必须根据Stream类型执行一些操作.但是instanceof不起作用并且给我编译错误

public <T>boolean objectIsNullOREmpty(Stream<T> str) {
    if(str instanceof Stream<String>) {
        //do some actions
    }

    if(Str instanceof Stream<SomeClass>) {
        //do some actions
    }
}
Run Code Online (Sandbox Code Playgroud)

编译错误

无法对参数化类型Stream执行instanceof检查.请使用表单Stream,因为在运行时将删除其他泛型类型信息

java java-8

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

如何在Java中将字符串位列表([[“ 0”,“ 0”,“ 1”,“ 0”]等)转换为int类型?

我的输入例如是列表

["0","0","0","0","0","1","0","1"]
Run Code Online (Sandbox Code Playgroud)

我想将其转换为整数,以使输出int5

这是我的代码,我可以通过使用将列表转换为字符串 StringBuilder

StringBuilder builder = new StringBuilder();

for(String str : list)  {
 builder.append(str);
 }

builder.toString()   //00000101
Run Code Online (Sandbox Code Playgroud)

java arrays binary byte

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