在这里,我输入一个字符串,其中用户输入带有扩展名的文件名,我想编写一个程序来给出文件的扩展名,但是当我运行这个程序时,它给出了异常 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) 如何将字符列表添加到集合中?下面的代码似乎不起作用。
HashSet<Character> vowels = new HashSet<Character>(
new Character[] {'a', 'e', 'i', 'o', 'u', 'y'}
);
Run Code Online (Sandbox Code Playgroud)
我看到的错误是
构造函数HashSet(Character [])未定义
我尝试了Character []和char [],但是都没有用。
我正在尝试使用以下代码从 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 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)
避免此类不良代码的更好方法是什么?
我有这个卡夫卡配置类
@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) 我正在搞乱一些代码并遇到一个空指针异常,这是一个未初始化的变量的结果.所以我只是想知道:有没有办法在尝试处理它之前验证一个对象实际存在,从而避免这样的错误?
我正在使用==运算符比较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) 我有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 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。为什么?
我有使用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,因为在运行时将删除其他泛型类型信息
我的输入例如是列表
["0","0","0","0","0","1","0","1"]
Run Code Online (Sandbox Code Playgroud)
我想将其转换为整数,以使输出int为 5
这是我的代码,我可以通过使用将列表转换为字符串 StringBuilder
StringBuilder builder = new StringBuilder();
for(String str : list) {
builder.append(str);
}
builder.toString() //00000101
Run Code Online (Sandbox Code Playgroud) java ×11
spring-boot ×2
apache-kafka ×1
arrays ×1
binary ×1
byte ×1
java-8 ×1
java-stream ×1
java-time ×1
lambda ×1
oop ×1
spring ×1
spring-kafka ×1