String[] s = str.split("\\."); char c = s[1].charAt(0); String temp = "1"+c;// // String temp = String.valueOf(c); int i = Integer.parseInt(temp)%10;
时间: 2024-04-19 17:28:02 浏览: 12
根据你提供的代码,首先使用 `split("\\.")` 方法将字符串 `str` 按照小数点进行分割,得到一个字符串数组 `s`,其中 `s[0]` 是小数点之前的部分,`s[1]` 是小数点之后的部分。
然后,通过 `s[1].charAt(0)` 可以获取到小数点后第一个字符,并将其保存在变量 `c` 中。
接下来,你使用了 `String temp = "1" + c;` 来构造一个新的字符串 `temp`,其中字符串 "1" 与字符 `c` 进行了拼接。
最后,通过 `Integer.parseInt(temp)` 将字符串 `temp` 转换为整数,并取其除以 10 的余数,保存在变量 `i` 中。
需要注意的是,这段代码中假设 `str` 中小数点后面只有一个字符,并且该字符是数字。否则,在获取字符 `c` 和构造字符串 `temp` 时可能会出现异常。
相关问题
char ch=str.charAt(i)
这段代码是用来获取字符串 str 中第 i 个字符的值,并将其存储在字符变量 ch 中。str 是一个字符串类型的变量,charAt() 是字符串类型的方法,用于获取指定位置的字符。i 是一个整数类型的变量,表示要获取的字符在字符串中的位置。注意,字符串中的第一个字符的位置是 0,而不是 1。因此,如果要获取字符串的第一个字符,应该使用 i=0。
public class MaxSort { public static void main(String[] args) { Scanner sc=new Scanner(System.in); String str=sc.next(); //ret用来保存当前最长的长度为多少 int ret=0; String str1=""; List<String> list1=new LinkedList<>(); for(int i=0;i<str.length()-1;i++){ if(str.charAt(i)<str.charAt(i+1)){ str1+=str.charAt(i); }else{ str1+=str.charAt(i); list1.add(str1); str1=""; } } //现在说明了i走到了最后一个位置 //i==str.length()-1 if(str.charAt(str.length()-1)>str.charAt(str.length()-2)){ str1+=str.charAt(str.length()-1); list1.add(str1); }else{ list1.add(String.valueOf(str.charAt(str.length()-1))); } String maxString=""; for(int i=0;i<list1.size();i++){ String s=list1.get(i); if(s.length()>ret){ maxString=s; ret=s.length(); } } System.out.println(maxString); } }转为C语言
把Java代码转化为C语言需要考虑语言特性的不同,下面是转化后的C代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
char str[100];
scanf("%s", str);
int len = strlen(str);
int ret = 0;
char str1[100] = "";
char *list1[100];
int count = 0;
for(int i = 0; i < len - 1; i++) {
if(str[i] < str[i + 1]) {
strncat(str1, &str[i], 1);
} else {
strncat(str1, &str[i], 1);
list1[count] = (char *)malloc(strlen(str1) + 1);
strcpy(list1[count], str1);
count++;
str1[0] = '\0';
}
}
// 判断最后一个字符
if(str[len - 1] > str[len - 2]) {
strncat(str1, &str[len - 1], 1);
list1[count] = (char *)malloc(strlen(str1) + 1);
strcpy(list1[count], str1);
count++;
} else {
list1[count] = (char *)malloc(2);
list1[count][0] = str[len - 1];
list1[count][1] = '\0';
count++;
}
char *maxString = "";
for(int i = 0; i < count; i++) {
char *s = list1[i];
if(strlen(s) > ret) {
maxString = s;
ret = strlen(s);
}
}
printf("%s\n", maxString);
return 0;
}
```