Java的String类、static关键字、Arrays类、Math类

学习目标:

  1. Java的String类、static关键字、Arrays类、Math类

学习内容:

String类

  1. 常用方法

    equals()用于比较字符串内容是否相等

    String str1 = "abc";
    String str2 = "aBc";
    str1.equals(str2);	//false
    "abc".equals(str1);	//true
    

    equalsIgnoreCase()用于比较两个字符串内容,但忽略大小写

    String str1 = "abc";
    String str2 = "aBc";
    str1.equalsIgnoreCase(str2);//true
    

    length()用于获取字符串长度
    concat()用于在末尾追加字符
    charAt()用于返回指定位置的字符
    indexOf()用于查找第一次在母串中出现的位置,失败返回-1
    substring ()用于截取字符串,返回为截取内容
    substring (起始位置,结束位置)同用于截取字符串,但范围是【 )左闭右开

    String str1 = "abc1c234";
            str1.length();//结果为7
            str1 = str1.concat("5678");//abc12345678
            str1.charAt(1);//b
            str1.indexOf("c");//2
            String str2 = str1.substring(1);//bc1c2345678
            String str3 = str1.substring(1, 3);//bc
    

    toCharArray()将字符串转为新的字符数组
    getBytes()将字符串转为新的byte类型数组
    replace(oldString,newString)将newString替换掉oldString

    String str1 = "abcde";
    char[] ch = str1.toCharArray();//【a,b,c,d,e】
    byte[] by = str1.getBytes();//【97,98,99,100,101】
    str1 = str1.replace("ab","AB");//“ABcde”
    

    split()方法用于分割字符串,返回为字符串数组

    String str1 = "a#b#c#d#e";
    String[] str2 = str1.split("#");//【"a","b","c","d","e"】
    
  2. 拼接字符串

    定义一个方法,把数组{1,2,3}按照指定个格式拼接成一个字符串。格式参照如下:[word1#word2#word3]。

    public static void connatArrayToString(int[] arr) {
        String lastString = "[";
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }
        for (int i = 0; i < arr.length; i++) {
    
            if (i == arr.length - 1) {
                lastString = lastString.concat("word" + arr[i] + "]");
                //lastString+="word"+arr[i]+"]";
            } else {
                lastString = lastString.concat("word" + arr[i] + "#");
                //lastString+="word"+arr[i]+"#";
            }
    
        }
        //打印字符串
        System.out.println(lastString);
    }
    
  3. 统计字符个数

    键盘录入一个字符,统计字符串中大小写字母及数字字符个数

    public static void stringCount() {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一串字符");
        String str1 = sc.next();
        char[] ch = str1.toCharArray();
        int capitalLettersCount = 0, lowercaseLetters = 0, number = 0, others = 0;
    
        for (int i = 0; i < ch.length; i++) {
            if ('A' <= ch[i] && ch[i] <= 'Z') {
                capitalLettersCount++;
            } else if ('a' <= ch[i] && ch[i] <= 'z') {
                lowercaseLetters++;
            } else if ('0' <= ch[i] && ch[i] <= 9) {
                number++;
            } else {
                others++;
            }
        }
        System.out.println("大写字母" + capitalLettersCount + "小写字母" + lowercaseLetters + "数字" + number + "其他字符" + others);
    
    }
    

Static

  1. 可以将成员变量或成员方法改为静态,该类的每个对象共享同一个类变量的值

    static int num1 = 10;
    

    static修饰的类变量,是所有该类对象共有且公用的,类对象1更改数值,类对象2使用的结果为类1使用后的结果

  2. 静态方法

    当类中方法有static修时,调用则为类名.方法名()

  3. 静态代码块

    static{}
    仅在类加载时刻执行一次,new()第二个类对象也不会执行,构造方法则是new()几次执行几次,static优先级是高于构造方法、main()

  4. Arrays类

  5. 用于更方便操作数组,位于java.util.Arrays,只有java.lang中不需要导入

  6. toString()将数组转为字符串,sort()对int类型数组升序排序
    输入字符串排大小并且逆序输出

    Scanner input = new Scanner(System.in);
            System.out.println("请输入字符串");
            String str1 = input.next();
            char[] ch = str1.toCharArray();
            Arrays.sort(ch);
            for (int i = ch.length-1; i >0; i--) {
                System.out.print(ch[i]);
            }
    

Math类

  1. 位于java.lang.Math
  2. 常用方法

    abd()取绝对值
    ceil()向上取整
    floor()向下取整
    round 4舍5入

  3. 使用 Math 类,计算在 -10.8 到 5.9 之间,绝对值大于 6 或者小于 2.1 的整数有多少个?
public static void countAbsNumber() {
        int count = 0, number;
        for (int i = -10; i <= 5.9; i++) {
            number = Math.abs(i);

            if (number > 6 || number < 2.1) {
                System.out.print(i + " ");
                count++;
            }
        }
        System.out.println("共有" + count + "个");
    }```

---


  • 19
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
下面是一个使用Java Smile库进行分的简单示例代码: ```java import com.smile.classification.Classifier; import com.smile.classification.LogisticRegression; import com.smile.data.Attribute; import com.smile.data.AttributeDataset; import com.smile.data.NominalAttribute; import com.smile.data.parser.ArffParser; import com.smile.math.Math; import java.io.File; import java.io.IOException; import java.util.Arrays; public class SmileClassificationExample { public static void main(String[] args) throws IOException { // 加载数据集 ArffParser parser = new ArffParser(); parser.setResponseIndex(4); // 数据集中第5列为响应变量 AttributeDataset trainData = parser.parse(new File("train.arff")); AttributeDataset testData = parser.parse(new File("test.arff")); // 构建逻辑回归分器 Attribute[] attributes = trainData.toArray(new Attribute[trainData.size()]); NominalAttribute classAttribute = (NominalAttribute) attributes[attributes.length - 1]; Classifier<double[]> classifier = new LogisticRegression(attributes, classAttribute.getStates()); // 训练分器 double[][] x = trainData.toArray(new double[trainData.size()][]); int[] y = trainData.toArray(new int[trainData.size()]); classifier.learn(x, y); // 在测试集上进行预测 double[][] testX = testData.toArray(new double[testData.size()][]); int[] predicted = new int[testData.size()]; for (int i = 0; i < testData.size(); i++) { predicted[i] = classifier.predict(testX[i]); } // 输出预测结果 System.out.println("Predicted\tActual"); for (int i = 0; i < predicted.length; i++) { System.out.println(predicted[i] + "\t" + testData.get(i)[attributes.length - 1]); } // 输出模型在测试集上的准确率 int[] actual = testData.toArray(new int[testData.size()], attributes.length - 1); double accuracy = Math.accuracy(actual, predicted); System.out.println("Accuracy: " + accuracy); } } ``` 在这个示例中,我们首先使用ArffParser加载训练集和测试集数据。然后,我们使用LogisticRegression构造了一个逻辑回归分器,并用训练集数据对其进行了训练。最后,我们在测试集上进行预测,并计算出了模型在测试集上的准确率。 需要注意的是,上述代码仅仅是一个简单的示例,实际上在进行分任务的时候,我们需要更加仔细地选择特征、调整模型的超参数等,以获得更好的分效果。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值