Dav*_*ica 3 java string int char
为什么这样做:
char c = 5;
int i = c++;
Run Code Online (Sandbox Code Playgroud)
但这会引发编译器错误(无效的参数到Operator ++/ - ):
int i = argv[0].charAt(0)++;
Run Code Online (Sandbox Code Playgroud)
das*_*ght 11
该++操作符对变量和表达式返回引用的东西可写,而不是一般的所有值.换句话说,根本没有办法将递增的值写char回原始字符串,因此charAt(0)++是错误.
您可以通过转换argv[0]为字符数组并在该数组内增加值来解决此问题.
增量操作者可以仅被施加到左值,这意味着该评估的是可在赋值表达式的左侧出现的东西表达式.函数的返回值不是左值.
您的charAt(0)调用与底层的位置之间没有任何关联,char[]从中读取此char值.如果你有
argv[0].value[0]++;
Run Code Online (Sandbox Code Playgroud)
将工作,但value为
private final char[] value;
Run Code Online (Sandbox Code Playgroud)
在不可变的 String类中.
| 归档时间: |
|
| 查看次数: |
384 次 |
| 最近记录: |