String name[] = {"Jack" , "Wang" , "Lee"}; for (int i=0 ; i< name.length ; i++) System.out.print(name[i].charAt(0) ); 运行的结果:_______
时间: 2024-05-03 18:16:46 浏览: 12
这段代码会导致无限循环,因为在 for 循环中,变量 i 没有进行增量操作,导致循环无法结束。如果将代码修改为如下所示,则会输出结果:"JWL"
```
String[] name = {"Jack", "Wang", "Lee"};
for (int i = 0; i < name.length; i++) {
System.out.print(name[i].charAt(0));
}
```
相关问题
public static int BF(String s,String t) { int cnt =0; for(int i=0;i<=s.length()-t.length();i++) { int j=0; while(j<t.length()&&s.charAt(i+j)==t.charAt(j)) { j++; } if(j==t.length()) { cnt++; i+=t.length()-1; } } return cnt; }注释代码
这是一个字符串匹配的暴力算法(Brute-Force),用于统计字符串 s 中子串 t 出现的次数。它的大致思路是:从 s 的第一个字符开始,依次比较 s 中长度为 t 的子串是否与 t 相等,如果相等则计数器加一,否则继续比较下一个子串。具体可以看下面的注释:
```
public static int BF(String s,String t) {
int cnt = 0; // 计数器,用于记录 t 在 s 中出现的次数
for(int i=0;i<=s.length()-t.length();i++) { // 从 s 的第一个字符开始,依次比较 s 中长度为 t 的子串是否与 t 相等
int j = 0; // j 用于记录当前比较到的 s 的位置
while(j<t.length() && s.charAt(i+j)==t.charAt(j)) { // 如果比较到的位置相等,则继续比较下一个字符
j++;
}
if(j==t.length()) { // 如果 j 等于 t 的长度,则说明 s 中存在一个与 t 相等的子串
cnt++; // 计数器加一
i += t.length() - 1; // 由于已经找到一个子串,所以可以跳过这个子串,从下一个位置开始比较
}
}
return cnt; // 返回 t 在 s 中出现的次数
}
```
试试把这段代码转为Android,以及他的解密 UInt16 sum = 0; for (int i = 0; i < code.Length; i++) { sum += code[i]; } code = sum.ToString() + code;
以下是将该代码转换为 Android 的示例代码:
```java
String code = "your_code_here";
int sum = 0;
for (int i = 0; i < code.length(); i++) {
sum += code.charAt(i);
}
code = String.valueOf(sum) + code;
```
该代码的作用是将字符串 `code` 中每个字符的 Unicode 码点值相加,然后在字符串前面添加这个和值。其中,`code` 是一个字符串变量。解密该代码需要先截取字符串前面的和值,然后对剩余部分进行反向操作。具体实现代码如下:
```java
String code = "your_code_here";
int sum = Integer.parseInt(code.substring(0, 5));
code = code.substring(5);
StringBuilder builder = new StringBuilder();
for (int i = 0; i < code.length(); i++) {
builder.append((char)(code.charAt(i) - sum));
}
String result = builder.toString();
```
该代码的作用是先从字符串 `code` 中截取前面的和值,然后对剩余部分的每个字符减去这个和值得到原始字符的 Unicode 码点值。最后将这些 Unicode 码点值转换为字符,拼接在一起得到解密后的字符串 `result`。