常用类
一、 单词替换
设计一个对字符串中的单词查找替换方法,实现对英文字符串中所有待替换单词的查找与替换。
输入格式:
首行输入母字符串,第二行输入查询的单词,第三行输入替换后的单词。
输出格式:
完成查找替换后的完整字符串
输入样例:
在这里给出一组输入。例如:
Although I am without you, I will always be ou you
ou
with
输出样例:
在这里给出相应的输出。例如:
Although I am without you, I will always be with you
1 import java.util.*; 2 public class Main{ 3 public static void main(String args[]){ 4 Scanner sc=new Scanner(System.in); 5 String str= sc.nextLine(); 6 String a = sc.nextLine(); 7 String b = sc.nextLine(); 8 String[] s=str.split(" "); 9 List<String> list=Arrays.asList(s); 10 Collections.replaceAll(list,a,b); 11 System.out.print(list.get(0)); 12 for (int i = 1; i < list.size(); i++) 13 { 14 System.out.print(" " + list.get(i)); 15 } 16 } 17 }
二、取数字
本题目要求读入若干个代表整数的字符串,然后将其转化为整数。
如果该数>=10000且<=20000,则依次输出其对应的二进制字符串、八进制字符串、十六进制字符串。
否则将字符串中的每个数字抽取出来,然后将所有数字加总求和。
提示:参考jdk文档的Integer,
输入样例:
123 10000 -123 314159265
输出样例:
1 2 3 6 10011100010000,23420,2710 1 2 3 6 3 1 4 1 5 9 2 6 5 36
1 import java.util.Scanner; 2 public class Main{ 3 public static void main(String[] args) { 4 int []n=new int[1000000]; 5 Scanner sc=new Scanner(System.in); 6 for(;;) { 7 String a=sc.nextLine(); 8 int a1=Integer.parseInt(a); 9 if(a1>=10000&&a1<=20000) 10 {System.out.println(Integer.toBinaryString(a1)+","+Integer.toOctalString(a1)+","+Integer.toHexString(a1));} 11 else 12 13 { if(a1==0)System.out.print("0"+" "); 14 {int k=0,sum=0;while(a1!=0) { 15 n[k]=a1%10; 16 sum=sum+n[k]; 17 a1=a1/10; 18 19 k++; 20 21 } 22 for(int j=k-1;j>=0;j--) { 23 if(n[j]<0)System.out.print(-n[j]+" "); 24 else 25 System.out.print(n[j]+" "); 26 }if(sum<0)System.out.println(-sum); 27 else 28 System.out.println(sum);} 29 }}}}
三、程序改错4:将字符串中的数字字符重新组成字符串,并转换成对应的数值输出
输入一行字符串,将其中的数字字符组成一个整数输出。其中,字符串包含的数字字符个数不超过10位。如果字符串中不包含数字字符,输出0。
修改如下程序的语法错误和逻辑错误。
import java.util.Scanner; public class Main { public int StringToInt ( String str) { StringBuffer sb = new StringBuffer(); for(int i = 0 ; i< str.length() ; i++) { char ch = str.charAt(i); if ( ch>='0' || ch <='9' ) { sb.append(ch); } } return Integer.parseInt(sb.toString()); } public static void main(String args[]) { Scanner sc = new Scanner(System.in); String str = sc.next(); int x = StringToInt ( sc ) ; System.out.println ( x ) ; } }
输入格式:
一行字符串(包含数字字符不超过10位)。
输出格式:
一个整数。
输入样例:
a2s45 y6
输出样例:
2456
1 import java.util.Scanner; 2 3 public class Main 4 { 5 public static int StringToInt ( String str) 6 { 7 StringBuffer sb = new StringBuffer(); 8 int f=0; 9 for(int i = 0 ; i< str.length() ; i++) 10 { 11 f=0; 12 char ch = str.charAt(i); 13 if ( ch>='0' && ch <='9' ) 14 { 15 sb.append(ch); 16 f=1; 17 } 18 19 } 20 if(f==1) 21 return Integer.parseInt(String.valueOf(sb)); 22 else 23 return 0; 24 } 25 26 public static void main(String args[]) 27 { 28 Scanner sc = new Scanner(System.in); 29 String str = sc.nextLine(); 30 int x = StringToInt (str) ; 31 32 System.out.println (x) ; 33 } 34 }
四、字符串处理
给定一个字符串。请去除串中的数字并反转。
输入格式:
原始串。
输出格式:
去除数字后的反转字符串。
输入样例:
he11ll00o w0or8ld!
输出样例:
!dlrow olleh
1 import java.util.Scanner; 2 3 public class Main 4 { 5 public static StringBuffer StringToInt ( String str) 6 { 7 StringBuffer sb = new StringBuffer(); 8 StringBuffer sb1=new StringBuffer(); 9 for(int i = 0 ; i< str.length() ; i++) 10 { 11 char ch = str.charAt(i); 12 if ( ch>='0'&& ch <='9' ) 13 { 14 sb.append(ch); 15 }else sb1.append(ch); 16 17 } 18 return sb1.reverse(); 19 } 20 21 22 public static void main(String args[]) 23 { 24 Scanner sc = new Scanner(System.in); 25 String str = sc.nextLine(); 26 StringBuffer x = StringToInt ( str) ; 27 System.out.println ( x ) ; 28 } 29 }
五、编写程序,实现字符串大小写的转换并倒序输出。
编写程序,实现字符串大小写的转换并倒序输出。
输入格式:
输入一行字符串
输出格式:
字符串大小写的转换,并倒序输出
输入样例:
Hello World!
输出样例:
!DLROw OLLEh
1 import java.util.Scanner; 2 3 public class Main { 4 public static void main(String[] args) { 5 Scanner sc = new Scanner(System.in); 6 String string = sc.nextLine(); 7 String str1=""; 8 for(int i=0;i<string.length();i++) { 9 char ch = string.charAt(i); 10 if((ch>='A'&&ch<='Z')) { 11 ch = (char)((int)ch+32); 12 } 13 else if((ch>='a'&&ch<='z')) { 14 ch = (char)((int)ch-32); 15 } 16 str1+=ch; 17 } 18 StringBuilder sbBuilder = new StringBuilder(str1).reverse(); 19 System.out.println(sbBuilder.toString()); 20 } 21 }
六、命名规范
在绝大多数程序设计语言中,变量名都不能包含空格。那么如果我们使用的变量名由两个或两个以上的单词来命名,我们就需要对这些单词加以区分。
一般程序设计中,有两种变量命名规范:Snake方式和Camel方式。Snake方式是指单词用小写字母,单词间下划线(“_”)代替空格;Camel方式是指相邻单词首字母用大写表示,对单词加以区分。
例如,你想定义一个变量表示一个数组数字之和,并且用英文“sum of array”。我们使用Snake方式的变量名为:sum_of_array;用Camel命名方式的变量名为:sumOfArray。
现在请你将一个Snake方式命名的变量,转换成Camel方式命名的变量。
【数据范围】
对于100%的数据,输入字符串长度不超过50,只包含小写字母和‘_’,第一个和最后一个字符不可能是下划线,且保证没有两个连续的下划线出现。
输入格式:
第一行一个字符串,表示用Snake方式命名的变量名。
输出格式:
输出转换成Camel方式命名的变量名。
输入样例:
在这里给出一组输入。例如:
sum_of_array
输出样例:
在这里给出相应的输出。例如:
sumOfArray
1 import java.util.Scanner; 2 public class Main { 3 public static void main(String[] args) { 4 Scanner sc = new Scanner(System.in); 5 String str = sc.next(); 6 StringBuffer sb = new StringBuffer(); 7 char[] arr = str.toCharArray(); 8 int f=0; 9 for(int i=0;i<str.length();i++) { 10 if(arr[i]=='_') { 11 sb.append(String.valueOf(arr[i+1]).toUpperCase()); 12 f=1; 13 i++; 14 } 15 if(f!=1) 16 sb.append(arr[i]); 17 f=0; 18 } 19 System.out.println(sb); 20 } 21 }
七、判断登录信息--Java字符串比较
从键盘接收用户输入的两个字符串,第一个代表用户名,第二个代表密码。
(1)如果用户名是SwpuIot,并且密码是123456,则输出:Welcome
(2)如果用户名正确,密码不正确,输出:Mismatch
(3)其他情况下,输出:NotExist
要输出的信息,建议从题目中复制,确保精确匹配。
输入格式:
用空格分隔开的两个字符串。
输出格式:
首字母大写的一个单词或词组。
输入样例:
SwpuIot 123456
输出样例:
Welcome
1 import java.util.Scanner; 2 public class Main{ 3 public static void main(String[] args){ 4 Scanner sc=new Scanner(System.in); 5 String name = "SwpuIot"; 6 String password = "123456"; 7 String str = sc.next(); 8 String str1 = sc.next(); 9 if(str.equals(name)){ 10 if(str1.equals(password)){ 11 System.out.println("Welcome"); 12 } 13 else{ 14 System.out.println("Mismatch"); 15 } 16 } 17 else{ 18 System.out.println("NotExist"); 19 } 20 } 21 }
八、识蛟龙号载人深潜,立科技报国志
背景简介:
“蛟龙号”载人深潜器是我国首台自主设计、自主集成研制的作业型深海载人潜水器,设计最大下潜深度为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
1 import java.util.Scanner; 2 public class Main{ 3 public static void main(String[] args){ 4 Scanner sc=new Scanner(System.in); 5 int sum=0; 6 while(true){ 7 sum=0; 8 String str = sc.nextLine(); 9 if(str.equals("end")){ 10 break; 11 } 12 for(int i=0;i<str.length();i++){ 13 if(str.charAt(i)>='0'&&str.charAt(i)<='9'){ 14 sum+=str.charAt(i)-'0'; 15 } 16 } 17 System.out.println(sum); 18 } 19 } 20 }
九、字符串字母大小写转换逆序输出
编写程序,实现字符串中的字符大小写转换,并逆序输出。
输入格式:
输入一行字符串。
输出格式:
对字符串中的字母进行大小写转换,其余字符不变化,最后对字符串逆序输出。
输入样例1:
Hello World!
输出样例1:
!DLROw OLLEh
输入样例2:
12312kfakfaskakdsfjSDFDFFSFDSFSF123 afdkadsfk@
输出样例2:
@KFSDAKDFA 321fsfsdfsffdfdsJFSDKAKSAFKAFK21321
1 import java.util.Scanner; 2 3 public class Main { 4 public static void main(String[] args) { 5 Scanner sc = new Scanner(System.in); 6 String string = sc.nextLine(); 7 String str1=""; 8 for(int i=0;i<string.length();i++) { 9 char ch = string.charAt(i); 10 if((ch>='A'&&ch<='Z')) { 11 ch = (char)((int)ch+32); 12 } 13 else if((ch>='a'&&ch<='z')) { 14 ch = (char)((int)ch-32); 15 } 16 str1+=ch; 17 } 18 StringBuilder sbBuilder = new StringBuilder(str1).reverse(); 19 System.out.println(sbBuilder.toString()); 20 } 21 }
十、去除字符串中数字字符逆序输出
给定一行字符串,去除其中的数字字符,并逆序输出。
输入格式:
输入一行字符串。
输出格式:
去除字符串中的数字字符,并逆序输出。
输入样例1:
He11ll00d323o w1232154304343or8ld!
输出样例1:
!dlrow odlleH
输入样例2:
ABC12D2434EFG hi13jk3242lmn opqr13221st u123vw xy213z
输出样例2:
zyx wvu tsrqpo nmlkjih GFEDCBA
1 import java.util.Scanner; 2 public class Main{ 3 public static void main(String[] args){ 4 Scanner sc=new Scanner(System.in); 5 String str = sc.nextLine(); 6 StringBuffer sb = new StringBuffer(); 7 for(int i=0;i<str.length();i++){ 8 if(str.charAt(i)>='0'&&str.charAt(i)<='9'){ 9 10 } 11 else{ 12 sb.append(str.charAt(i)); 13 } 14 } 15 System.out.println(sb.reverse()); 16 }}
十一、图书价格汇总
假设图书馆中图书信息的格式为:
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
1 import java.util.Scanner; 2 class Book{ 3 private String name; 4 private int price; 5 public Book(){ 6 7 } 8 public Book(String name,int price){ 9 this.name=name; 10 this.price=price; 11 } 12 public int getPrice() { 13 return price; 14 } 15 public void toString(Book[] book){ 16 for(int i=0;i<book.length;i++){ 17 price+=book[i].price; 18 System.out.println(book[i].name+"--"+book[i].price); 19 } 20 } 21 22 } 23 24 public class Main{ 25 public static void main(String[] args) { 26 Scanner sc= new Scanner(System.in); 27 String str = sc.nextLine(); 28 Book[] book = Split.input(str); 29 Book b=new Book(); 30 b.toString(book); 31 System.out.println("总价格--"+b.getPrice()); 32 } 33 } 34 class Split{ 35 public static Book[] input(String str){ 36 String[] s1 = str.split(";"); 37 Book[] book =new Book[s1.length]; 38 for(int i=0;i<s1.length;i++){ 39 String[] s2 = s1[i].split(":"); 40 book[i]=new Book(s2[0],Integer.valueOf(s2[1].trim())); 41 } 42 return book; 43 } 44 }
十二、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
1 import java.util.Scanner; 2 public class Main{ 3 public static void main(String[] args){ 4 Scanner sc=new Scanner(System.in); 5 int f=0; 6 while(sc.hasNext()){ 7 String str = sc.nextLine(); 8 if(Character.isJavaIdentifierStart((str.charAt(0)))){ 9 for(int i=1;i<str.length();i++){ 10 if(Character.isJavaIdentifierPart(str.charAt(i))){ 11 f=1; 12 } 13 else{ 14 f=0; 15 break; 16 } 17 } 18 19 } 20 else{ 21 f=0; 22 } 23 24 if(f==1){ 25 System.out.println("true"); 26 } 27 else{ 28 System.out.println("false"); 29 } 30 } 31 } 32 }

浙公网安备 33010602011771号