Java 在printf运算符中使用%是否重载?如果没有,是什么?
请解释一下这里发生了什么:Java 在printf运算符中使用%是否重载?如果没有,是什么?,java,operator-overloading,Java,Operator Overloading,请解释一下这里发生了什么: class Test{ public static void main(String[] args){ int a = 43%2; System.out.printf("The test remainder is %d %s",a,"hello"); } } 在上面的代码中,我想知道它是属于%操作符吗?看起来您对%在字符串中的用法感到困惑 Java中包含在“之间的任何内容都不是运算符。因此,当您有类似 43%2这个%是一个操作符,但是当你有一个字符
class Test{
public static void main(String[] args){
int a = 43%2;
System.out.printf("The test remainder is %d %s",a,"hello");
}
}
在上面的代码中,我想知道它是属于
%
操作符吗?看起来您对%
在字符串中的用法感到困惑
Java中包含在“
之间的任何内容都不是运算符。因此,当您有类似
43%2
这个%
是一个操作符,但是当你有一个字符串,比如“asdf%asdf%++*adsf”
这个%
和*
不是操作符。Java也没有操作符重载
printf
函数使用%
来标记稍后将向其传递变量的位置,它可能是任何其他符号,与运算符重载无关。看起来您对字符串中使用%
感到困惑
Java中包含在“
之间的任何内容都不是运算符。因此,当您有类似
43%2
这个%
是一个操作符,但是当你有一个字符串,比如“asdf%asdf%++*adsf”
这个%
和*
不是操作符。Java也没有操作符重载
printf
函数使用%
来标记稍后将向其传递变量的位置,它可能是任何其他符号,与运算符重载无关。否。Java目前对运算符重载的支持非常有限,而这不是其中之一
中的%
由java.util.Formatter
的实现处理String#format
和PrintWriter#printf
将格式化工作委托给Formatter
,后者手动解析字符串
%有值的唯一原因是格式化程序处理字符串的方式
如果查看代码,您将发现:
if (conversion == '%' || conversion == 'n')
后跟处理不同类型的switch语句。否。Java目前对运算符重载的支持非常有限,而这不是其中之一
中的%
由java.util.Formatter
的实现处理String#format
和PrintWriter#printf
将格式化工作委托给Formatter
,后者手动解析字符串
%有值的唯一原因是格式化程序处理字符串的方式
如果查看代码,您将发现:
if (conversion == '%' || conversion == 'n')
然后是处理不同类型的switch语句。您是否询问inta=43%2
或在格式字符串中使用%
?Java目前不支持运算符重载。唯一的内置运算符重载用于数字和字符串
值。当我从字符串中替换或删除%时,未显示输出。如果更改%d%s的顺序,则引发异常。为什么?您询问的inta=43%2可能重复
或在格式字符串中使用%
?Java目前不支持运算符重载。唯一的内置运算符重载用于数字和字符串
值。当我从字符串中替换或删除%时,未显示输出。如果更改%d%s的顺序,则引发异常。为什么?可能是复制品