2021级-JAVA07 常用类(字符串)
7-1 sdut-String-3 字符串字母大小写转换逆序输出
编写程序,实现字符串中的字符大小写转换,并逆序输出。
输入格式:
输入一行字符串。
输出格式:
对字符串中的字母进行大小写转换,其余字符不变化,最后对字符串逆序输出。
输入样例1:
Hello World!
输出样例1:
!DLROw OLLEh
输入样例2:
12312kfakfaskakdsfjSDFDFFSFDSFSF123 afdkadsfk@
输出样例2:
@KFSDAKDFA 321fsfsdfsffdfdsJ
import java.util. *;
public class Main {public static void main(String[] args) {Scanner in = new Scanner(System.in);String s = in.nextLine();int n = s.length();for(int i = n - 1; i >= 0; i --){char c = s.charAt(i);if(c >= 'A' && c <= 'Z')c += 32;else if(c >= 'a' && c <= 'z')c -= 32;System.out.print(c);}}
}
7-2 sdut-String-4 去除字符串中数字字符逆序输出
给定一行字符串,去除其中的数字字符,并逆序输出。
输入格式:
输入一行字符串。
输出格式:
去除字符串中的数字字符,并逆序输出。
输入样例1:
He11ll00d323o w1232154304343or8ld!
输出样例1:
!dlrow odlleH
输入样例2:
ABC12D2434EFG hi13jk3242lmn opqr13221st u123vw xy213z
输出样例2:
zyx wvu tsrqpo nmlkjih GFED
import java.util.*;
public class Main {public static void main(String[] args) {Scanner in = new Scanner(System.in);String s = in.nextLine();int n = s.length();for(int i = n - 1; i >= 0; i --){char c = s.charAt(i);if(c >= '0' && c <= '9')continue;System.out.print(c);}}
}
7-3 sdut-String-1 识蛟龙号载人深潜,立科技报国志(I)
背景简介:
“蛟龙号”载人深潜器是我国首台自主设计、自主集成研制的作业型深海载人潜水器,设计最大下潜深度为7000米级,也是目前世界上下潜能力最强的作业型载人潜水器。“蛟龙号”可在占世界海洋面积99.8%的广阔海域中使用,对于我国开发利用深海的资源有着重要的意义。
中国是继美、法、俄、日之后世界上第五个掌握大深度载人深潜技术的国家。在全球载人潜水器中,“蛟龙号”属于第一梯队。目前全世界投入使用的各类载人潜水器约90艘,其中下潜深度超过1000米的仅有12艘,更深的潜水器数量更少,目前拥有6000米以上深度载人潜水器的国家包括中国、美国、日本、法国和俄罗斯。除中国外,其他4国的作业型载人潜水器最大工作深度为日本深潜器的6527米,因此“蛟龙号”载人潜水器在西太平洋的马里亚纳海沟海试成功到达7020米海底,创造了作业类载人潜水器新的世界纪录。
从2009年至2012年,蛟龙号接连取得1000米级、3000米级、5000米级和7000米级海试成功。下潜至7000米,说明蛟龙号载人潜水器集成技术的成熟,标志着我国深海潜水器成为海洋科学考察的前沿与制高点之一。
2012年6月27日11时47分,中国“蛟龙”再次刷新“中国深度”——下潜7062米。6月3日,“蛟龙”出征以来,已经连续书写了5个“中国深度”新纪录:6月15日,6671米;6月19日,6965米;6月22日,6963米;6月24日,7020米;6月27日,7062米。下潜至7000米,标志着我国具备了载人到达全球99%以上海洋深处进行作业的能力,标志着“蛟龙”载人潜水器集成技术的成熟,标志着我国深海潜水器成为海洋科学考察的前沿与制高点之一,标志着中国海底载人科学研究和资源勘探能力达到国际领先水平。
‘蛟龙’号是我国载人深潜发展历程中的一个重要里程碑。它不只是一个深海装备,更代表了一种精神,一种不畏艰险、赶超世界的精神,它是中华民族进军深海的号角。
了解蛟龙号”载人深潜器“的骄人业绩,为我国海底载人科学研究和资源勘探能力达到国际领先水平而自豪,小伙伴们与祖国同呼吸、共命运,一定要学好科学文化知识、提高个人能力,增强创新意识,做事精益求精,立科技报国之志!
请编写程序,实现如下功能:读入关于蛟龙号载人潜水器探测数据的多行字符串,从给定的信息找出数字字符,输出每行的数字之和。
提示 若输入为“2012年2月”,则该行的输出为:7。每个数字字符单独相加。
输入格式:
读入关于蛟龙号载人潜水器探测数据的多行字符串,每行字符不超过100个字符。
以"end"结束。
输出格式:
与输入行相对应的各个数字之和。
输入样例1:
2012年6月27日11时47分,中国“蛟龙”再次刷新“中国深度”——下潜7062米
6月15日,6671米
6月19日,6965米
6月22日,6963米
6月24日,7020米
6月27日,7062米
下潜至7000米,标志着我国具备了载人到达全球99%以上海洋深处进行作业的能力
end
输出样例1:
48
32
42
34
21
30
25
输入样例2:
全世界投入使用的各类载人潜水器约90艘,下潜深度超过1000米的仅有12艘,更深的潜水器数量更少
6000米以上深度载人潜水器的国家包括中国、美国、日本、法国和俄罗斯
日本深潜器下潜6527米,蛟龙号在马里亚纳海沟海试成功到达7020米海底,创造了新的世界纪录
从2009年至2012年,蛟龙号接连取得1000米级、3000米级、5000米级和7000米级海试成功
下潜至7000米,说明蛟龙号载人潜水器集成技术的成熟
end
输出样例2:
13
6
29
32
7
import java.util.*;
public class Main {public static void main(String[] args) {Scanner in = new Scanner(System.in);while(in.hasNext()){String line = in.nextLine();if(line.equals("end")) break;int len = line.length();long sum = 0;for(int i = 0; i < len; i ++){char c = line.charAt(i);if(c >= '0' && c <= '9')sum += (c - '0');}System.out.println(sum);}}
}
7-4 sdut-String-5 图书价格汇总(II)
假设图书馆中图书信息的格式为:
Java程序设计: 34;Web程序设计: 56;JSP程序设计:20
按要求输出每本图书的名称及价格,计算所有图书的总价格并输出。
输入格式:
读入一行图书信息。如:
Java程序设计: 34;Web程序设计: 56;JSP程序设计:20
提示:
(1)每本书的价格是整数,价格与下一本书的名字之间有一个中文;价格前可能有空格,可能没有。
(2)题目中的分号”;“和冒号”:“为全角字符。
输出格式:
分别输出每本图书的名称及价格,一本书占一行,形式为:书名--价格;
最后,输出计算的所有图书的总价格,形式为:总价格--总价格
输入样例:
Java程序设计:34 ;Web程序设计: 56;JSP程序设计:20
输出样例:
Java程序设计--34
Web程序设计--56
JSP程序设计--20
总价格--110
import java.util.*;
import java.lang.*;
public class Main {public static void main(String[] args) {Scanner in = new Scanner(System.in);String s = in.nextLine();String[] t = s.split(";");int sum = 0;int i;for(i = 0; i < t.length; i ++){String now = t[i];String[] q = now.split(":");int price=Integer.parseInt(q[1].trim());String name=q[0].trim();//.trim()用于去掉首尾的空白符sum=sum+price;System.out.println(name+"--"+price);}System.out.println("总价格--"+sum);}
}
7-5 sdut-String-2 识蛟龙号载人深潜,立科技报国志(II)(正则表达式)
背景简介:
“蛟龙号”载人深潜器是我国首台自主设计、自主集成研制的作业型深海载人潜水器,设计最大下潜深度为7000米级,也是目前世界上下潜能力最强的作业型载人潜水器。“蛟龙号”可在占世界海洋面积99.8%的广阔海域中使用,对于我国开发利用深海的资源有着重要的意义。
中国是继美、法、俄、日之后世界上第五个掌握大深度载人深潜技术的国家。在全球载人潜水器中,“蛟龙号”属于第一梯队。目前全世界投入使用的各类载人潜水器约90艘,其中下潜深度超过1000米的仅有12艘,更深的潜水器数量更少,目前拥有6000米以上深度载人潜水器的国家包括中国、美国、日本、法国和俄罗斯。除中国外,其他4国的作业型载人潜水器最大工作深度为日本深潜器的6527米,因此“蛟龙号”载人潜水器在西太平洋的马里亚纳海沟海试成功到达7020米海底,创造了作业类载人潜水器新的世界纪录。
从2009年至2012年,蛟龙号接连取得1000米级、3000米级、5000米级和7000米级海试成功。下潜至7000米,说明蛟龙号载人潜水器集成技术的成熟,标志着我国深海潜水器成为海洋科学考察的前沿与制高点之一。
2012年6月27日11时47分,中国“蛟龙”再次刷新“中国深度”——下潜7062米。6月3日,“蛟龙”出征以来,已经连续书写了5个“中国深度”新纪录:6月15日,6671米;6月19日,6965米;6月22日,6963米;6月24日,7020米;6月27日,7062米。下潜至7000米,标志着我国具备了载人到达全球99%以上海洋深处进行作业的能力,标志着“蛟龙”载人潜水器集成技术的成熟,标志着我国深海潜水器成为海洋科学考察的前沿与制高点之一,标志着中国海底载人科学研究和资源勘探能力达到国际领先水平。
‘蛟龙’号是我国载人深潜发展历程中的一个重要里程碑。它不只是一个深海装备,更代表了一种精神,一种不畏艰险、赶超世界的精神,它是中华民族进军深海的号角。
了解蛟龙号”载人深潜器“的骄人业绩,为我国海底载人科学研究和资源勘探能力达到国际领先水平而自豪,小伙伴们与祖国同呼吸、共命运,一定要学好科学文化知识、提高个人能力,增强创新意识,做事精益求精,立科技报国之志!
请编写程序,实现如下功能:读入关于蛟龙号载人潜水器探测数据的多行字符串,从给定的信息找出数字字符,输出每行的数字之和。
提示 若输入为“2012年2月”,则该行的输出为:2014。若干个连续的数字字符作为一个整体,以十进制形式相加。
输入格式:
读入关于蛟龙号载人潜水器探测数据的多行字符串,每行字符不超过80个字符。
以"end"结束。
输出格式:
与输入行相对应的各个整数之和。
输入样例1:
2012年6月27日11时47分,中国“蛟龙”再次刷新“中国深度”——下潜7062米
6月15日,6671米
6月19日,6965米
6月22日,6963米
6月24日,7020米
6月27日,7062米
下潜至7000米,标志着我国具备了载人到达全球99%以上海洋深处进行作业的能力
end
输出样例1:
9165
6692
6990
6991
7050
7095
7099
输入样例2:
全世界投入使用的各类载人潜水器约90艘,下潜深度超过1000米的仅有12艘,更深的潜水器数量更少
6000米以上深度载人潜水器的国家包括中国、美国、日本、法国和俄罗斯
日本深潜器下潜6527米,蛟龙号在马里亚纳海沟海试成功到达7020米海底,创造了新的世界纪录
从2009年至2012年,蛟龙号接连取得1000米级、3000米级、5000米级和7000米级海试成功
下潜至7000米,说明蛟龙号载人潜水器集成技术的成熟
end
输出样例2:
1102
6000
13547
20021
7000
import java.lang.*;
import java.util.*;
public class Main {public static void main(String[] args) {Scanner in = new Scanner(System.in);while(in.hasNext()){String line = in.nextLine();if(line.equals("end")) break;String[] s = line.split("\\D+");//“\\D+”表示所有非数字字符long sum = 0;for(int i = 0; i < s.length; i ++){if(!s[i].equals(""))//避免出现空值,空值无法用parseInt转换{int data = Integer.parseInt(s[i]);sum += data;}}System.out.println(sum);}}
}
7-6 sdut-String+array1(Collection-Map)-1 读中国载人航天史,汇航天员数量,向航天员致敬(字符串+数组、LinkedMap )
1986年,中国实施“863”计划,航天技术列入其中。以载人飞船开始起步,最终建成我国的空间站。
1992年9月21日,中国实施载人航天工程,并确定了三步走的发展战略:第一步,发射载人飞船,建成初步配套的试验性载人飞船工程。第二步,突破载人飞船和空间飞行器的交会对接技术,利用载人飞船技术改装、发射一个空间实验室。第三步,建造载人空间站。
在长期的奋斗中,我国航天工作者不仅创造了非凡的业绩,而且铸就了特别能吃苦、特别能战斗、特别能攻关、特别能奉献的载人航天精神。载人航天精神,是“两弹一星”精神在新时期的发扬光大,是我们伟大民族精神的生动体现,永远值得全党、全军和全国人民学习。
截至2021年4月,历任航天英雄名字如下:
杨利伟(神舟五号)
费俊龙、聂海胜(神舟六号)
翟志刚、景海鹏、刘伯明(神舟七号)
景海鹏、刘旺、刘洋(神舟九号)
聂海胜、张晓光、王亚平(神舟十号)
景海鹏、陈东(神舟十一号)
会编程的小伙伴们,请以他们出征太空的先后顺序,统计一下航天英雄们出征太空的次数,以实际行动向航天员们致敬!
输入格式:
每次航天飞船的编号为一行读入数据,分别读入每次飞上太空的航天英雄的姓名,名字中间有一个空格分隔。
最后一行为“end“,表示输入结束。提示:目前,中国航天员的数量小于20。
输出格式:
以出征太空的先后顺序,统计航天英雄们出征太空的次数。
每位航天员占一行,航天员姓名与出征次数中间有一个空格。
输入样例:
杨利伟
费俊龙 聂海胜
翟志刚 景海鹏 刘伯明
景海鹏 刘旺 刘洋
聂海胜 张晓光 王亚平
景海鹏 陈东
end
输出样例:
杨利伟 1
费俊龙 1
聂海胜 2
翟志刚 1
景海鹏 3
刘伯明 1
刘旺 1
刘洋 1
张晓光 1
王亚平 1
陈东 1
提示:
- 对于Java语言,此题有两种解决方案:
- (1)使用数组来解决;
- (2)使用java.util.Map接口的实现类LinkedMap来解决。
- LinkedHashMap是HashMap的子类,保证在遍历map元素时,可以按照添加的顺序实现遍历,对于频繁的遍历操作,它的执 行效率高于HashMap.
- 对于Python语言,。。。。
- 对于C语言,。。。。。。。
import java.lang.*;
import java.util.*;
public class Main {public static void main(String[] args) {Scanner in = new Scanner(System.in);String name = null;Map<String, Integer> map = new LinkedHashMap<String, Integer>();//LinkedHashMap:对于元素的插入顺序 or 访问顺序进行排序//Map是一个双列集合,一个元素包含两个值(一个key,一个value),key不允许重复,value可以重复while(in.hasNext()){name = in.next();if(name.equals("end")) break;map.put(name, map.getOrDefault(name, 0) + 1);//put存放key与value,map.getOrDefault:如果 在Map中存在key,则返回key所对应的的value,如果 在Map中不存在key,则返回默认值。}for(String it : map.keySet())//遍历输出{System.out.println(it + " " + map.get(it));}}
}
7-7 sdut-String-6 Java判断合法标识符
输入若干行字符串,判断每行字符串是否可以作为Java语法的合法标识符。
提示:Java标识符的命名规则——字符串允许包括 字母、数字、下划线_、$符号,但是数字不能作为首字母。
输入格式:
输入有多行,每行一个字符串,可能包含空格字符,字符串长度不超过20个字符。
输出格式:
若该行字符串可以作为Java标识符,则输出“true”;否则,输出“false”。
输入样例:
abc
_test
$test
a 1
a+b+c
a’b
123
变量
输出样例:
在这里给出相应的输出。例如:
true
true
true
false
false
false
false
true
import java.util.*;
public class Main {public static void main(String[] args) { Scanner in = new Scanner(System.in);while(in.hasNext()) {//得到输字符串并输出String s = in.nextLine();char part;boolean flag = true; //设立标志位char first = s.charAt(0);//得到字符串首字符//若首字符合法,继续判断后续字符if (Character.isJavaIdentifierStart(first)) {int len = s.length();//得到字符串长度int i;for (i = 1; i < len; i++) {part = s.charAt(i);if (!Character.isJavaIdentifierPart(part)) {flag = false;break;}}} else {//首字符不合法,判断结果确定非法flag = false;}if (flag) {System.out.println("true");} else {System.out.println("false");}}}
}
7-8 sdut-String--判定Java源文件名称
输入若干行字符串,判断每行字符串是否可以作为Java的源文件名称。其中:
Java源文件的命名规则:合法的 Java标识符+“.java”;
Java标识符的命名规则:可包含字母、数字、下划线、$,但是数字不能作为首字母。
输入格式:
输入有多行,每行一个字符串。
输出格式:
若该行字符串可做为Java的源文件名称,则输出“true”;否则,输出“false”。
输入样例:
abc.java
_test
$test.java
$12.java
a 1.java
a+b+c.java
a’b.java
123.java
变量.java
Main.java.java
ab abc.java
输出样例:
true
false
true
true
false
false
false
false
true
false
false
import java.util.Scanner;
public class Main {public static void main(String[] args) {Scanner in = new Scanner(System.in);while (in.hasNext()) {String s = in.nextLine();if(s.endsWith(".java") && judge(s)){System.out.println("true");}else System.out.println("false");}}public static boolean judge(String str){char part;boolean flag = true; //设立标志位char first = str.charAt(0);//得到字符串首字符if (Character.isJavaIdentifierStart(first)) {int len = str.length();//得到字符串长度int i;for (i = 1; i < len - 5; i++) {part = str.charAt(i);if (!Character.isJavaIdentifierPart(part)) {flag = false;break;}}} else {flag = false;}return flag;}
}
7-9 编程题:选修课成绩统计问题
学生选修课成绩统计问题
选修课格次成绩使用字母表示,规则为:A=5,B=4,C=3,D=2,E=1
编写程序统计每个同学两门选修课的分数成绩
输入格式:多个学生的格次成绩使用西文逗号分开,整理为一行;每个学生姓名在前面,格次成绩在后,之间均使用空格分开
数据统计:将每个学生的两门课格次成绩,转换为分数成绩并求和
输出格式:结果为一行,姓名在前总分在后,之间空格分开;不同学生的记录之间使用西文逗号分开,注意最后的记录末尾没有逗号
输入格式:
多个学生的格次成绩使用西文逗号分开,整理为一行;每个学生姓名在前面,格次成绩在后,之间均使用空格分开
输出格式:
结果为一行,姓名在前总分在后,之间空格分开;不同学生的记录之间使用西文逗号分开,注意最后的记录末尾没有逗号
输入样例:
在这里给出一组输入。例如:
zs A B,ls A C,ww B C
输出样例:
在这里给出相应的输出。例如:
zs 9,ls 8,ww 7
import java.util.Arrays;
import java.util.Scanner;
public class Main{public static void main(String[] args){Scanner sc=new Scanner(System.in);String str[]=sc.nextLine().split(",");String str1[][]=new String [str.length][3];for(int i=0;i<str.length;i++){str1[i]=str[i].split(" ");}for (int i = 0; i < str.length; i++) {int grade=0;for(int j=0;j<3;j++){if(str1[i][j].equals("A")) {grade+=5;}else if(str1[i][j].equals("B")) {grade+=4;}else if(str1[i][j].equals("C")) {grade+=3;}else if(str1[i][j].equals("D")) {grade+=2;}else if(str1[i][j].equals("E")) {grade+=1;}else {grade=grade+0;}}if(i==str.length-1)System.out.println(str1[i][0]+" "+grade);elseSystem.out.print(str1[i][0]+" "+grade+",");}}
}
7-10 将一整个正整数的所有位重新排序,组成一个最大数
输入一个正整数,将这个数的所有位进行重新排序,得出最大的值。
输入格式:
输入一个正整数
输出格式:
输出排序后最大的值
输入样例:
在这里给出一组输入。例如:
19837
输出样例:
在这里给出相应的输出。例如:
98731
import java.util.*;public class Main {public static void main(String[] args) {Scanner cin = new Scanner(System.in);String a = cin.nextLine();char b[] = new char[a.length()];for(int i = 0; i < a.length(); i ++){char c = a.charAt(i);b[i] = c;}Arrays.sort(b);for(int i = a.length() - 1; i >= 0; i --)System.out.print(b[i]);}
}
2021级-JAVA07 常用类(字符串)相关推荐
- java 类数组_Java常用类-字符串、日期类、算法及数组工具类等
大家好,乐字节的小乐又和大家见面了.这次要给大家讲述的是Java常用类. 主要有以下知识点: Ø 字符串相关类(String .StringBuffer.StringBuilder) Ø 算法及数组工 ...
- Java常用类字符串异常处理
13.常用类 错题 1.有如下4条语句:() 有如下4条语句:()Integer i01=59; int i02=59; Integer i03=Integer.valueOf(59); Intege ...
- Java常用类全面解析(含部分源码)
常用类 文章目录 常用类 字符串相关的类 String 类 说明 案例 String 的实例方式 String 中的常用方法 案例一 案例二 案例三 String 类与其它结构之间的转换 小复习-与基 ...
- 思维导图05----Java常用类
Java常用类----思维导图 下载地址: https://download.csdn.net/download/q863672107/20016471 以下是自动转换的MakeDown文本 常用类 ...
- day20+day21:java常用类
常用类 字符串相关的类 String StringBuffer.StringBuilder 日期时间API JDK 8 之前的日期时间API 1.System类中的currentTimeMillis( ...
- 面试准备——Java回顾:高级编程(多线程、常用类、集合、泛型、IO流、反射、动态代理、新特性)
多线程 程序.进程.线程 程序:完成特定任务.用某种语言编写的一组指令的结合,一段静态的代码,静态对象: 进程:程序的一次执行过程,即正在执行的程序: 线程:进程可细化为线程,是一个程序内部的一条执行 ...
- 菜鸟学JAVA之——常用类(StringBuffer、StringBuilder、Comparable、Comparator等)
文章目录 常用类 字符串相关的类 一.String类及常用方法 二.StringBuffer.StringBuilder JDK 8 之前的日期时间API 一.System静态方法 二.Date类 三 ...
- Java高级--Java常用类
Java常用类 字符串相关的类 String String的实例化方式 String常用方法 String与字符数组转换 字符数组--->字符串 字符串--->字符数组 String与字节 ...
- java 字符串 面试题_Java常用类String的面试题汇总(java面试题)
1.比较两个字符串时使用"=="还是equals()方法? 当然是equals方法."=="测试的是两个对象的引用是否相同,而equals()比较的是两个字符串 ...
最新文章
- 【c语言】求最大公约数
- linux运行容器,容器与云|如何在 Windows 上运行 Linux 容器
- mysql count if 去重_MYSQL数据去重
- 两线怎么接三线插座图_一文搞懂电工配电二线制、三线制、四线制
- jQuery EasyUI dialog 居中最简单的办法
- mysql统计各部门人数_2019年内蒙古普通高校招生考试各分数段人数统计表公布
- 200917阶段一C++双向链表模板
- pip install 安装报错:UnicodeEncodeError: 'ascii' codec can't encode characters in position XX的解决办法...
- spring5.0.2中文官网文档pdf
- 前端学习(1950)vue之电商管理系统电商系统之渲染添加父类的对话框
- 【POJ - 2406】Power Strings (KMP,最小循环节)
- centos改变文件拥有者_每天学点之CentOS软件二进制包安装
- 防备电脑死机故障技巧的8个方法
- xml、xhtml、html、dhtml的区别
- 【图论】Kruskal算法求最小生成树详解
- RTL8153B ,瑞昱千兆网卡芯片 ,扩展坞HUB千兆网口芯片。
- 我的ubuntu论坛账号
- server 2003 访问FTP站点下载文件,提示当前的安全设置不允许从该位置下载文件
- opengl绘制立方体
- SQL Server 错误:尝试打开或创建物理文件时,CREATE FILE 遇到操作系统错误
热门文章
- Elementui 表格底部空白 el-table__body-wrapper is-scrolling-none 高度错误
- 设置el-table 表头居中 表格内容左对齐
- Usboot V1.68版本
- android BLE蓝牙详细讲解(一)
- Payment Terms 收付款条件和分期付款设置
- EPON与APON的区别 10G EPON如何与1G EPON兼容?
- 金蝶云星空简单账表动态列名汇总
- PX4模块设计之三十一:ManualControl模块
- 2017中国产品经理、互联网运营大会官方回顾:未来,属于你
- bugku web 头等舱 writeup