我正在尝试在另一个网站上预览来自rss feed的最新帖子.Feed是UTF-8编码的,而网站是ISO-8859-1编码的.在显示标题时,我正在使用;
$post_title = 'Blogging – does it pay the bills?';
echo mb_convert_encoding($post_title, 'iso-8859-1','utf-8');
// returns: Blogging ? does it pay the bills?
// expected: Blogging - does it pay the bills?
Run Code Online (Sandbox Code Playgroud)
请注意,我期待的连字符不是正常的减号,而是一些大笨钟.好吧,反正还要几个像素.:)不确定如何描述它,因为我的键盘无法生成该字符...
我试图划分两个持续时间 ( java.time.Duration
) 并执行有两种方法
java.time.Duration#dividedBy(long)
它返回一个本身类型的对象Duration
,但由于一些 API 限制,我无法使用这个版本。
java.time.Duraiton#dividedBy(Duration)
它返回 along
并返回一个持续时间在其他持续时间内发生的次数,但这里我们失去了精度,因为它不关心余数。
有没有办法执行此除法并得到余数结果。
Duration.ofHours(1).dividedBy(7L); //returns 8M34.28571 seconds
Duration.ofHours(1).dividedBy(Duration.ofSeconds(7L)) // returns 514 seconds
Run Code Online (Sandbox Code Playgroud)
我有一个限制,不能使用第一种方式。我可以使用其他方式获得结果吗?
编辑:(来自评论)我不允许将 Duration 实例转换为序数值,例如毫秒。
下面是我的代码,基本上如果答案是"Y",那么脚本会运行一条消息,如果它是其他东西然后它关闭.
#! usr/bin/perl
print "Do you wish to run Program? [Y/N]:";
$answer = <>;
if($answer == "Y") {
print "COOOL\n";
} else {
system "exit"
}
Run Code Online (Sandbox Code Playgroud) Java 的String
类型有一个format
方法,但调用它会忽略模板内的所有内容,只返回第一个参数。
String s = "name: %s, age: %d".format("bob", 42);
assertEquals("name: bob, age: 42", s); // fails, s.equals("bob")
Run Code Online (Sandbox Code Playgroud)
即使使用空模板,也会返回第一个参数:
s = "".format("alice", 21); // returns "alice"
Run Code Online (Sandbox Code Playgroud)
Java 8 和 Java 11 都表现出相同的问题行为。
相同的代码在 Python 中也可以运行:
String s = "name: %s, age: %d".format("bob", 42);
assertEquals("name: bob, age: 42", s); // fails, s.equals("bob")
Run Code Online (Sandbox Code Playgroud)
这是为什么?没有编译错误,程序运行也没有异常。为什么它会这样表现还不太明显。如何正确使用format
字符串的方法?
我在某处读到,在面向对象语言中,对象是方法的第一个参数。这在这里起作用吗?