Java基础学习笔记 第一部分 part 5*

常用的api

Math String StringBuffer StringTokenizer Character Arrays Ramdom Scanner JOptionPane

1.Math类的方法(java.lang包中):

(1)三角函数方法
public static double sin(double radians) //radians代表弧度
public static double cos(double radians)
public static double tan(double radians)
public static double asin(double radians) //asin代表1/sin
public static double acos(double radians)
public static double atan(double radians)
将弧度转换成角度的方法:toDegrees(double angrad)
将角度转换成弧度的方法:toRadians(double angdeg)
(2)PI的方法:Math.PI
E(自然对数的底数):Math.E
(3)指数方法:
求e的a次方: public static double exp(double a)
求ln(a): public static double log(double a)
求a的b次方: public static double pow(double a,double b)
求算数平方根:public static double sqrt(double a)
(4)取整方法:
舍掉小数取整: public static double floor(double x)
四舍五入取整: public static double rint(double x)
进一取整: public static double ceil(double x)
round方法: int型: public static int round(float x) //返回 (int)Math.floor(x+0.5)
long型: public static long round(double) //返回 (long)Math.floor(x+0.5)
(5) min和max方法被重载为返回两个数字(int,long,float和double)之间的最大值和最小值
abs方法被重载为返回数字(int,long,float和double)的绝对值
(6)生成随机数:Math.random()方法是一个可以产生[0.0,1.0]区间内的一个双精度浮点数的方法
如:产生一个100以内的整数:int x=(int)(Math.random()*100);
产生一个1-50之间的随机数:int x=1+(int)(Math.random()*50);
产生一个a-b之间的随机数:int x=(int)(a+(b-a+1)*Math.random(x));


2.String类的方法(java.lang包中):(用String类创建的字符串不能被修改)

注意:使用速记写法创建的字符串被认为是标准化的字符串。可以用String对象中的intern方法返回标准化字符串,返回的这个字符串和用速记写法创建的字符串是同一个串

String s="Welcome to JAVA!";
String s1=new String("Welcome to JAVA!");
String s2=s1.intern();
System.out.println("s1==s is"+(s1==s));
System.out.println("s2==s is"+(s2==s));
System.out.println("s1==s2 is"+(s1==s2));
//显示  s1==s is false
        s2==s is true
        s1==s2 is false

(1)char charAt(int index): 返回指定索引处的 char 值 eg.

public class Test{
  public static void main(String[] args){
    String s="abc";
    System.out.println(s.charAt(1));
}
}
//输出  b

(2)int compareTo(String str):按字典顺序比较两个字符串 eg.

java中的compareto方法,返回参与比较的前后两个字符串的asc码的差值,看下面一组代码
String a="a",b="b";
System.out.println(a.compareto(b));
则输出-1;
若a="a",b="a"则输出0;
若a="b",b="a"则输出1;

单个字符这样比较,若字符串比较长呢??
若a="ab",b="b",则输出-1;
若a="abcdef",b="b"则输出-1;
//也就是说,如果两个字符串首字母不同,则该方法返回首字母的asc码的差值;

如果首字母相同呢??
若a="ab",b="a",输出1;
若a="abcdef",b="a"输出5;
若a="abcdef",b="abc"输出3;
若a="abcdef",b="ace"输出-1;
//即参与比较的两个字符串如果首字符相同,则比较下一个字符,直到有不同的为止,返回该不同的字符的asc码差值,如果两个字符串不一样长,可以参与比较的字符又完全一样,则返回两个字符串的长度差值

(3)String concat(String str): 将指定字符串连接到此字符串的结尾 eg.
“cares”.concat(“s”) returns “caress”
“to”.concat(“get”).concat(“her”) returns “together”

(4)boolean equals(String str): 将此字符串与指定的对象比较 eg.

1.对于字符串变量来说,使用“==”和“equals()”方法比较字符串时,其比较方法不同。
“==”比较两个变量本身的值,即两个对象在内存中的首地址。
“equals()”比较字符串中所包含的内容是否相同。
比如:
String s1,s2,s3 = "abc", s4 ="abc" ;
s1 = new String("abc");
s2 = new String("abc");
 那么:
s1==s2   是 false      //两个变量的内存地址不一样,也就是说它们指向的对象不 一样,

故不相等。

s1.equals(s2) 是 true    //两个变量的所包含的内容是abc,故相等

2.对于非字符串变量来说,"==""equals"方法的作用是相同的都是用来比较其
对象在堆内存的首地址,即用来比较两个引用变量是否指向同一个对象。
比如:
class A
{
      A obj1   =   new  A();
      A obj2   =   new  A();
}
那么:obj1==obj2是false
            obj1.equals(obj2)是false

(5)boolean equalsIgnoreCase(String str): 将此 String 与另一个 String 比较,不考虑大小写
(6)int length():返回此字符串的长度
(7)String replace(char oldChar,char newChar): 用 newChar 替换此字符串中出现的所有 oldChar eg.

"mesquite in your cellar".replace('e', 'o')
        returns "mosquito in your collar"
"the war of baronets".replace('r', 'y')
        returns "the way of bayonets"
"sparring with a purple porpoise".replace('p', 't')
        returns "starring with a turtle tortoise"
"JonL".replace('q', 'x') returns "JonL" (no change)

(8)String substring(int offset,int endIndex)或String substring(int offset): 返回一个新的字符串,它是此字符串的一个子字符串 eg.

"unhappy".substring(2) returns "happy"
"Harbison".substring(3) returns "bison"
"emptiness".substring(9) returns "" (an empty string)

(9)String toLowerCase():使用默认语言环境的规则将此 String 中的所有字符都转换为小写
(10)String toUpperCase():使用默认语言环境的规则将此 String 中的所有字符都转换为大写
(11)indexOf方法:在字符串中查找字符或者子串:
1)public int indexOf(int ch)返回字符串中和指定字符ch相匹配的第一个字符的下标,如果不含,则返回-1

"Welcome to Java".indexOf('W')//返回0
"Welcome to Java".indexOf('x')//返回-1

2)public int indexOf(int ch,int fromIndex)在字符串中,从指定的fromIndex字符开始查找与指定字符ch相匹配的第一个字符,返回它的下标;不含则返回-1

"Welcome to Java".indexOf('o',5)//返回9

3)public int indexOf(String str)返回字符串中和指定子串str匹配的子串的第一个字符的下标;不含则返回-1

"Welcome to Java".indexOf("come")//返回3

4)public int indexOf(String str,int fromIndex)在字符串中,从指定的fromIndex字符开始查找与指定字符串str相匹配的子串,返回第一个字符的下标;否则返回-1

"Welcome to Java".indexOf("Java",5)//返回11/

(12)toCharArray方法:将字符串转换为字符数组

char[] charArray="Java".tocharArray();
//那么charArray[0]是'J',charArray[1]是'a',charArray[2]是'v'

(13)使用String(char[])构造函数或valueOf(char[])方法将字符数组转换为字符串 eg.

Stringg str=new String(new char[]{'J','a','v','a'});
或 String str=String.valueOf(new cahr[]{'J','a','v','a'});

3.StringBuffer类:StringBuffer类可以创建能够被修改的可变长度字符串(这个类使字符串能自动的根据获取的大小分配内存,减少内存的压力)

(1)构造函数:
1)public StringBuffer()构造一个空的字符串缓冲区,并初始化为16个字符串的容量
2)public StringBuffer(int length)构造一个空的字符串缓冲区,并初始化为指定长度变元的长度
3)public StringBuffer(string string) 为字符变元构造字符串缓冲区,缓冲区的初始容量的16加上字符变元的长度
(2)修改缓冲区的字符串 注意:所有的修改方法都要做两件事情:1. 改变字符串缓冲区的内容 2.返回字符串缓冲区的引用
1)append方法:将新字符串添加到strBuf

StringBuffer strBuf=new StringBuffer();
strBuf.append("Welcome");
strBuf.append(' ');
strBuf.append("to");
strBuf.append(' ');
strBuf.append("Java");//  输出Welcome to Java

2 )insert方法:将boolean,char,char array,double,float,int,long和String插入到字符缓冲区

strBuf.insert(11,"HTML and ");//接着上面的代码,输出Welcome to HTML and Java

3)public int capacity() 返回当前容量。容量指可用于最新插入的字符的存储量,超过这一容量就需要再次进行分配
4)setLength方法:可以设置字符串缓冲区的长度,如果newLength变量小于字符串缓冲区的当前长度,字符串缓冲区的长度就会被截短;若大于或等于,有效的空字符(’\u0000’)

StringBuffer buff = new StringBuffer("tutorials");
buff.setLength(5);
System.out.println("buffer2 = " + buff);
System.out.println("length = " + buff.length());
// 输出 buffer2 = tutor
         length = 5

5)public char charAt(int index) 返回此序列中指定索引处的 char 值。第一个 char 值在索引 0 处,第二个在索引 1 处,依此类推,这类似于数组索引。index 参数必须大于等于 0,且小于此序列的长度


4.StringTokenizer类:它可以用来将字符串分段,使其包含有检索和处理的信息

   (1)public boolean hasMoreTokens()  测试此 tokenizer 的字符串中是否还有更多的可用标记; 当且仅当该字符串中当前位置后至少有一个标记时才为 true;否则为 false。
(2)public String nextToken()   返回此 string tokenizer 的下一个标记
(3)public int countTokens()   计算在生成异常之前可以调用此 tokenizer 的 nextToken 方法的次数

eg.

  String s="I am the most handsome man.";
      StringTokenizer st=new StringTokenizer(s);
      System.out.println("Total:"+st.countTokens());
      while (st.hasMoreTokens())
          System.out.println(st.nextToken());
//输出:
Total:6
I
am
the
most
handsome
man.

5.Character类:(有一个构造函数,30多种方法)

     (1)构造函数 Character(char)     eg. Character character=new Character('a');
     (2)public int compareTo(char)   这个值是两个字符比较后的标准代码差值   eg.假定charObject是new Character('b')       charObject.compareTo(new Character('a'))返回 1
     (3)public boolean equals(char)    当两个字符一样时,返回真,否则假
     (4)public boolean isDigit(char)  如果字符是数字,则返回真
     (5)public boolean isLetter(char)  如果字符是字母,则返回真
     (6)public boolean isLetterOrDigit(char)  如果字符是字母或数字,则返回真
     (7)public boolean isUpperCase(char)  如果字符是大写字母则返回真
     (8)public boolean isLowerCase(cahr)  如果字符是小写字母则返回真
     (9)public char toLowerCase(char)  将字符转换为小写字母
     (10)public char toUpperCase(cahr)  将字符转换为大写字母

6.Arrays类

1.排序(升序排列)

import java.util.Arrays; //导入包
public class HelloWorld {
    public static void main(String[] args){
  //定义一个整型数组
    int[] scores= { 78,99};
  //使用Arrays类的sort()方法对数组进行排序
    Arrays.sort(scores);
    System.out.println("排序后:");
  //循环遍历出数组中元素值
    for(int i=0;i<scores.length;i++){
        System.out.println(scores[i]);
     }
   }
}

2.将数组转换为字符串 语法:Arrays.toString(数组名);

import java.util.Arrays;  //导入包
public static void main(String[] args){
   //定义一个整型数组
     int[] nums=new  int[]{8,88,888};
     System.out.println("输出数组nums中的元素:" +Arrays.toString(nums));
}
//*******输出:  输出数组nums中的元素:[8,88,888]

7.Random类方法(java.util包中):

   (1)float nextFloat(): 方法调用返回下一个从这个伪随机数生成器的序列中均匀分布的0.0和1.0之间的float值    eg.
import java.util.*;

public class RandomDemo {
  public static void main( String args[] ){
      // create random object
      Random randomno = new Random();

      // check next float value 
      System.out.println("Next float value: " + randomno.nextFloat());   //randomno.nextFloat()的括号内不能填数字
  }     
}

(2)int nextInt(): 它是此随机数生成器的序列中均匀分布的 int 值

Random random = new Random();
random.nextInt();

(3)int nextInt(int num): 它是取自此随机数生成器序列的、在 0(包括)和指定值(不包括)之间均匀分布的 int 值 eg.

Random random = new Random();
random.nextInt(100); //100是不包含在内的,只产生0~99之间的数

(4)long nextLong(): 它是取自此随机数生成器序列的均匀分布的 long 值


8.Scanner类 1.导入java.util.Scanner 2.创建Scanner对象 3. 接收并保存用户输入的值

import java.util.Scanner;
public class Demo01{
  public static void main(String[] args){
    Scanner input=new Scanner(System.in);
    System.out.println("请输入考试成绩信息:”);
    int score=input.nextInt();
    System.out.println(score);
   }
}

nextLine输入的是字符串 nextInt输入整型 nextDouble输入double型


9.JOptionPane类中的showInputDialog和showMessageDialog方法

  String input=JOptionPane.showInputDialog(null,"Enter an input","Input Dialog Demo",JOptionPane.QUESTION_MESSAGE);
//第一个参数可以总是空的,第二个参数用于提示用户的字符串,第三个参数输入框的标题,第四个可以是
JOptionPane.QUESTION_MESSAGE,他在输入框中显示问号图标
JOptionPane.showMessageDialog(null,year+"is a leap year?"+isLeapYaer,"Example2.2Output(int)",JOptionPane.INFORMATION_MESSAGE);

如何调用showInputDialog和showMessageDialog:

import javax.swing.JOptionPane;  //在类前导入包
---------
  String string==JOptionPane.showInputDialog(null,x,y,JoptionPane.QUESTION_MESSAGE);
JOptionPane.showMessageDialog(null,x,y,JOptionPane.INFORMATION_MESSAGE);
//x代表提示信息字符串,y代表输入对话框标题字符串   

10.将字符串转换为数字:(Integer和Double类包含在java.lang数据包中)

   1.转换为整型要使用Integer类中的parseInt方法
int intvalue=Integer.parseInt(intString);

2.转换为双精度浮点数要使用Double类中的parseDouble方法

 double doublevalue=Double.parseDouble(doubleString);

9和10的例子:

import javax.swing.JOptionPane;
public class lop {
      public static void main(String[] args) {
     String yearString=JOptionPane.showInputDialog(null,"Enter a year ","Example2.2Input(int)",
             JOptionPane.QUESTION_MESSAGE);
     int year=Integer.parseInt(yearString);
     boolean isLeapYear=((year%4==0)&&(year%100!=0))||(year%400==0);
     JOptionPane.showMessageDialog(null,year+"is a leap year?"+isLeapYear,"Example2.2Output(int)",
             JOptionPane.INFORMATION_MESSAGE);
     String doubleString=JOptionPane.showInputDialog(null,"Enter a double value",
             "Example 2.2 Input(double)",JOptionPane.QUESTION_MESSAGE);
     double doubleValue=Double.parseDouble(doubleString);
     JOptionPane.showMessageDialog(null, doubleValue+"is posttive?"+(doubleValue>0),
             "Example 2.2 Output(double)",JOptionPane.INFORMATION_MESSAGE);


     System.exit(0);

      }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java基础学习笔记 # 一、Java简介 Java是一种面向对象的编程语言,由Sun Microsystems(现在是Oracle)于1995年首次发布。它具有跨平台的特性,可以在不同的操作系统上运行。Java语言被广泛应用于开发各种类型的应用程序,包括桌面应用、Web应用、移动应用等。 # 二、Java基本语法 ## 1. 变量与数据类型 Java是强类型语言,每个变量必须先声明后使用。Java提供了多种数据类型,包括基本数据类型(整数、浮点数、字符、布尔值)和引用数据类型(类、接口、数组)。 ## 2. 运算符 Java提供了多种运算符,包括算术运算符、关系运算符、逻辑运算符等,用于进行各种数学或逻辑运算。 ## 3. 控制流程 Java提供了多种控制流程语句,包括条件语句(if-else语句、switch语句)、循环语句(for循环、while循环)、跳转语句(break语句、continue语句)等,用于控制程序的执行流程。 ## 4. 方法和类 Java中的方法用于封装一段可重复使用的代码,可以带有参数和返回值。类是Java程序的基本组织单位,包含了属性和方法。可以使用关键字class定义一个类,通过实例化类的对象来调用其方法。 # 三、面向对象编程 Java是一种面向对象的编程语言,面向对象编程的核心概念包括封装、继承和多态。 ## 1. 封装 封装是将数据和行为打包成一个类,通过访问修饰符(public、private等)控制对类的成员的访问权限。 ## 2. 继承 继承允许一个类继承另一个类的属性和方法,并且可以通过重写来修改或扩展继承的方法。 ## 3. 多态 多态允许通过父类类型的引用来引用子类对象,实现对不同子类对象的统一调用。 # 四、异常处理 Java提供了异常处理机制,用于处理程序中的错误情况。异常分为可检查异常(checked exception)和不可检查异常(unchecked exception),可以使用try-catch语句来捕获和处理异常。 # 五、Java标准库 Java标准库提供了大量的类和接口,用于完成各种常见的任务。其中包括输入输出、集合、多线程、网络编程等功能,可以大大简化开发过程。 以上是我学习Java基础笔记总结,希望对你有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值