String s ="N410C"
String s1 = ""
for(int i=0;i<s.length();i++)
s1 = String.valueOf(s1)+String.valueOf( (s.charAt(i)+i) % 10 );
return s1;出来是什么结果呢? 能给出分析最好,谢谢! UP有分!!
String s1 = ""
for(int i=0;i<s.length();i++)
s1 = String.valueOf(s1)+String.valueOf( (s.charAt(i)+i) % 10 );
return s1;出来是什么结果呢? 能给出分析最好,谢谢! UP有分!!
String s1 = ""
for(int i=0;i<s.length();i++)
s1 = String.valueOf(s1)+String.valueOf( (s.charAt(i)+i) % 10 );
return s1;返回的应该是一串数字..
s.charAt(i)取得的是s的每一个值.然后这个值加上i表示.将这个char类型自动转换为int.然后再与i相加.等到的值.除以10取余。将得到的余数再用valesOf转换为字符串与先前的s字符串相加.
字符串相加等于把字符串相连.所以如果你第一次运行String.valueOf(s.charAt(i)+i) % 10 )得到的值是3.第二次运行的值是2.,第三次运行得到5,那么三次以后s1的值就等于325s1 = String.valueOf(s1)+String.valueOf( (s.charAt(i)+i) % 10 );
这里改为s1 = s1+String.valueOf( (s.charAt(i)+i) % 10 );
效果应该是一样的.不对意思.没有测试...不知道我分析得对不对
'N'+0 = 78+0 =78 与10取模得8
'4'+1 = 4+1 = 5 与10取模得5
'1'+2 = 1+2 = 3 与10取模得3
'0'+3 = 0+3 = 3 与10取模得3
'C'+4 = 67+4 = 71 与10取模得1
结果是不是:85331?
不是4+1
是4的ASCII码加1
4的ASCII码(52),再加1为53,53%10取模为3,
1的ASCII码(49),再加2为51,51%10取模为1,
0的ASCII码(48),再加3位51,51%10取模为1,
C的ASCII码(67),再加4为71,71%10取模为1,
得结果为83111