例如:
测试 | Result |
---|---|
MyUtil mu=new MyUtil(); String s="Tom:85,Jack:70,Black:95"; System.out.println(mu.getMax(s)); | 95 |
直接上代码:
import java.util.Scanner;
class MyUtil{public int getMax(String s){String[] parts = s.split(",");int max = 0;for(String part : parts){String[] sub = part.split(":");int score=Integer.parseInt(sub[1]);if(score>max){max=score;}}return max;}
}
public class Test{public static void main(String[] args) {MyUtil mu=new MyUtil();String s="Tom:85,Jack:70,Black:95";System.out.println(mu.getMax(s));}
}
解释一下:
我们有这样一个字符串,需要返回最高分:
String s="Tom:85,Jack:70,Black:95";
第一步,分析构造:
发现字符串由三个部分组成,三个“人名:分数”,中间用逗号分隔,所以我们需要先把三个部分分开,拆分成多个子字符串:
String[] parts = s.split(",");
经过这行代码执行后,parts
数组将会包含三个元素,分别是 "Tom:85"
、"Jack:70"
和 "Black:95"
,对应着原字符串中以逗号分隔开的各个部分。
第二步,遍历子字符串:
for(String part : parts)
用于遍历 parts
数组中的每一个元素, 在第一次循环时,part
的值会是 "Tom:85"
,接着进入循环体执行相应操作;第二次循环时,part
的值变为 "Jack:70"
,依此类推,直到遍历完 parts
数组中的所有元素。
第三步,子字符串进行分割:
String[] sub = part.split(":");
根据冒号进行进一步分割,并存入sub数组里 。
第四步,类型转换:
int score=Integer.parseInt(sub[1]);
通过函数将sun[1]里面的字符串数字转换为整数型数字,并赋给score,以便后续比较
最后就不解释了,很简单。