常用类

一、 单词替换

设计一个对字符串中的单词查找替换方法,实现对英文字符串中所有待替换单词的查找与替换。

输入格式:

首行输入母字符串,第二行输入查询的单词,第三行输入替换后的单词。

输出格式:

完成查找替换后的完整字符串

输入样例:

在这里给出一组输入。例如:

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 }

 

posted @ 2021-07-07 18:47  咖啡布丁  阅读(280)  评论(0)    收藏  举报
levels of contents