Java中printf()的用法 详细解答

public class TestPrintf{

public static void main(String[] args)
{
//定义一些变量,用来格式化输出。
double d = 345.678;
String s = “你好啊!”;
int i = 1234567;
//"%“表示进行格式化输出,”%“之后的内容为格式的定义。
System.out.printf(”%f",d);//“f"表示格式化输出浮点数。
System.out.println();
System.out.printf(”%9.2f",d);//“9.2"中的9表示输出的长度,2表示小数点后的位数。
System.out.println();
System.out.printf(”%+9.2f",d);//"+“表示输出的数带正负号。
System.out.println();
System.out.printf(”%-9.4f",d);//"-“表示输出的数左对齐(默认为右对齐)。
System.out.println();
System.out.printf(”%±9.3f",d);//“±"表示输出的数带正负号且左对齐。
System.out.println();
System.out.printf(”%d",i);//“d"表示输出十进制整数。
System.out.println();
System.out.printf(”%o",i);//“o"表示输出八进制整数。
System.out.println();
System.out.printf(”%x",i);//“d"表示输出十六进制整数。
System.out.println();
System.out.printf(”%#x",i);//“d"表示输出带有十六进制标志的整数。
System.out.println();
System.out.printf(”%s",s);//"d"表示输出字符串。
System.out.println();
System.out.printf(“输出一个浮点数:%f,一个整数:%d,一个字符串:%s”,d,i,s);
//可以输出多个变量,注意顺序。
System.out.println();
System.out.printf("字符串:%2 s , s,%1 sd的十六进制数:%1KaTeX parse error: Expected 'EOF', got '#' at position 1: #̲x",i,s); //"X"表示第几个变量。
}
}

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,我可以为您解答有关Java多线程消费Kafka的问题。 首先,您需要使用Kafka的Java客户端API来消费消息。这个API提供了一些方法来消费消息,例如`poll()`方法来获取消费者记录。在多线程情况下,您需要为每个线程创建一个消费者实例,并在每个线程使用这个实例来消费消息。 以下是一个基本的多线程Kafka消费者示例代码: ``` import org.apache.kafka.clients.consumer.*; import org.apache.kafka.common.TopicPartition; import java.util.*; public class KafkaConsumerThread implements Runnable { private final KafkaConsumer<String, String> consumer; private final List<String> topics; public KafkaConsumerThread(String brokers, String groupId, List<String> topics) { Properties prop = new Properties(); prop.put("bootstrap.servers", brokers); prop.put("group.id", groupId); prop.put("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer"); prop.put("value.deserializer", "org.apache.kafka.common.serialization.StringDeserializer"); this.consumer = new KafkaConsumer<>(prop); this.topics = topics; } @Override public void run() { try { consumer.subscribe(topics); while (true) { ConsumerRecords<String, String> records = consumer.poll(1000); for (ConsumerRecord<String, String> record : records) { System.out.printf("Thread %d: received message: (%s, %s)\n", Thread.currentThread().getId(), record.key(), record.value()); } } } catch (Exception e) { e.printStackTrace(); } finally { consumer.close(); } } } ``` 在这个示例,我们在构造函数创建了一个Kafka消费者实例,并订阅了指定的主题。在`run()`方法,我们使用`poll()`方法来获取消费者记录。在循环,我们遍历消费者记录并处理它们。 要使用多个线程,请创建多个`KafkaConsumerThread`实例并将其传递给新线程。以下是示例代码: ``` public class MultiThreadedKafkaConsumer { public static void main(String[] args) { String brokers = "localhost:9092"; String groupId = "test-group"; List<String> topics = Arrays.asList("test-topic"); int numThreads = 4; ExecutorService executor = Executors.newFixedThreadPool(numThreads); for (int i = 0; i < numThreads; i++) { KafkaConsumerThread consumerThread = new KafkaConsumerThread(brokers, groupId, topics); executor.submit(consumerThread); } executor.shutdown(); } } ``` 在这个示例,我们创建了4个线程,每个线程都使用相同的Kafka消费者实例来消费`test-topic`主题的消息。 希望这个示例能够帮助您理解如何在Java使用多线程消费Kafka。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值