Java入门日记1 | 第一周总结

一个不精致的开头:

       准确来说今天是我初学Java的第一天。课上老师指导我们怎么下载——怎么安装——怎么配置等等,但是关于Java语法那是密不透风,生怕走漏风声的一个大动作。这种情况下还要做题,言下之意是让我们学会自行去互联网寻求帮助,我必须承认自己找代码的过程是不太容易的,好在第一周给的五道题目不难,终究相对轻松地解决了,自然要赶紧整理一波。


当你正在看这篇文章的时候,你可能想快速知道它能告诉你什么,这就是我即将做的事情:

1、如何在IDEA创建一个程序

2、一个完整的程序是长什么样的?

3、包和类的调用

4、什么是静态方法?

5、简单的输出        System.out.print

6、命令行参数设置

7、简单的输入        Scanner

8、字符串强制转整数

9、字符串转为字符数组

10、整数强制转小数

11、结束程序


1、如何在IDEA创建一个程序?

首先我们要创建一个新项目:打开IDEA > 左上角File > New > Project

然后在项目中创建一个新程序:左边Project > src > 右击src > New > Java Class > 输入名称

2、一个完整的程序是长什么样的?

以本周第一题为例,题目要求输入一个整数n,输出2的n次方的计算结果。

可以看出来和C还是很像的。

3、包和类的调用

包相当于C语言中include后面的东西,不过这里用的是import

import java.util.Scanner;

上面的语句表示引入Scanner的包,Scanner是用来读入的一个包。

Java中主要有两种包,核心包以“java”开头,由JDK直接提供,例如Scanner就是核心包;扩展包以“javax”开头。

包里有类,类相当于C中include之后调用的函数。

4、什么是静态方法?

无须创建对象即可使用的方法。

5、简单的输出

System.out.println("Hello World!");
System.out.print("Hello World!");

有ln和没有ln的区别是,如果有ln输出结束后会自动加上回车,没有ln就没有回车。

System.out.printf("%.3lf\n",ans);

这种则是相近于C语言的输出方式了。

6、命令行参数设置

程序左边绿色的小箭头 > Modefy Run Configuration > Program Arguments

7、简单的输入

方法一:键入用Scanner

先要import包Scanner,然后才能读入。

Scanner s = new Scanner(System.in);
//创建一个读入器s
String a = s.next();
//每次用s读入一个字符串(遇到空格或回车则停止读入),并且存入字符串a
s.close();
//关闭读入器,也就是停止读入

 来看一个麻烦一点的连读三个数的例子,当然可以选择for循环解决,我偏不,哼

Scanner s = new Scanner(System.in);
int a,b,c;
String num = s.next();
a = Integer.parseInt(num);
num = s.next();
b = Integer.parseInt(num);
num = s.next();
c = Integer.parseInt(num);
s.close();

 方法二:读入命令行参数,这种方式也类似C语言

for (String x : args) {
    System.out.println(x);
}

8、强制转整数 Interger.parseInt

String num = s.next();
a = Integer.parseInt(num);

9、字符串转为字符数组

String str = "Hello";
//str是一个字符串
char[] a = str.toCharArray();
//这样操作以后,a就是一个字符数组,且为"Hello"

计算字符串和字符数组的长度是一样的。

int len_str = str.length();
int len_a = str.a();
//len_str和len_a都等于5

但是字符串和字符数组的元素调用方式是不一样的。

字符数组同C语言,a[0],a[1]是合法的,但字符串不允许这么做,如果要调用字符串上的元素,正确的做法是str.charAt()

System.out.print( str.charAt(4) );
//输出结果为o

10、整数强制转小数

同C语言

int a1 = 2, a2 = 4;

int ans_i;
ans_i = a1 / a2;    //ans_i等于0

double ans_d;
ans_d = (double)a1 / a2;    //ans_d等于0.5

11、结束程序

System.exit(0);
//0表示顺利结束,非0表示有错误发生。

        笔记做到这里写完了,再放两道题目的完整代码,大家可以尝试一下能不能看得懂,然后可以就可以开始动手写辣!

第二题·题目描述

给定一个单词,如果该单词以 `er` 、 `ly` 或者 `ing` 后缀结尾,则删除该后缀(题目保证删除后缀后的单词长度不为 0),否则不进行任何操作。

输入格式

输入一行,包含一个单词(单词中间没有空格,每个单词最大长度为 32)。

输出格式

输出按照题目要求处理后的单词。

import java.util.Scanner;

public class W1T2 {
    public static void main(String args[]) {

        Scanner s = new Scanner(System.in);
        String a = s.next();
        s.close();

        char[] str = a.toCharArray();

        int len = str.length,flag = 3;
        if ( (str[len-2]=='e' && str[len-1]=='r') || (str[len-2]=='l' && str[len-1]=='y') )
            flag = 1;
        else if (str[len-3]=='i' && str[len-2]=='n' && str[len-1]=='g')
            flag = 0;

        for (int i=0;i<len-3+flag;i++) {
            System.out.print(str[i]);
        }
        System.out.println();

    }
}

第五题·题目描述

通过Java实现一个解决方案,对于输入的两个字符串,判断第二个字符串是否为第一个字符串的结尾。

输入格式

输入只有一行,包含两个字符串str和ending,他们以空格分离。

输出格式

true或false

import java.util.Scanner;

public class W1T5 {
    public static void main(String args[]) {

        Scanner s = new Scanner(System.in);
        String str_a = s.next();
        String str_b = s.next();
        s.close();

        int flag = 1;
        if (str_a.length() < str_b.length()) {
            flag = 0;
        }
        if ( flag==1 ) {
            int k = str_a.length()-1;
            for (int i=str_b.length()-1;i>=0;i--) {
                if (str_a.charAt(k)!=str_b.charAt(i)) {
                    flag = 0; break;
                }
                k--;
            }
        }
        if (flag==1) System.out.println("true");
        else System.out.println("false");
    }
}

我们下周再见~

在学Java和Python新手一枚吖~有错误欢迎指正!

猜你喜欢

转载自blog.csdn.net/m0_70241024/article/details/126751797