java 基礎實戰_Java基礎實戰(三)

獲取字符串

字符數組

大寫?

小寫?

數字?

非字母與數字

大寫字母

小寫字母

數字

i

結束

i=i+1

第一步 拆分字符串為字符數組:

static void count(String str) {

// 將字符串拆分為字符數組

char[] charArray = str.toCharArray();

}

第二步 定義相關變量記錄結果:

// 記錄數字字符串

String digit = "";

// 記錄統計數字出現的次數

int digitCount = 0;

// 記錄大寫字母字符串

String upper = "";

// 記錄大寫字母出現的次數

int upperCount = 0;

// 記錄小寫字母字符串

String lower = "";

// 記錄小寫字母出現的次數

int lowerCount = 0;

// 記錄非字母與數字的字符串

String other = "";

// 記錄非字母與數字出現的次數

int otherCount = 0;

第三步 遍歷字符數組,依次判斷:

// 遍歷字符數組依次判斷字符類型

for (char ch : charArray) {

// 統計大寫字母

if (Character.isUpperCase(ch)) {

upperCount++;

// 字符轉字符串

upper += Character.toString(ch);

}

// 統計小寫字母

if (Character.isLowerCase(ch)) {

lowerCount++;

lower += Character.toString(ch);

}

// 統計數字

if (Character.isDigit(ch)) {

digitCount++;

digit += Character.toString(ch);

}

// 統計非字母或數字

if (!Character.isLetterOrDigit(ch)) {

otherCount++;

other += Character.toString(ch);

}

}

完整代碼:

package task03.code0301;

public class CountChar {

public static void main(String[] args) {

String str = "ABCD123!@#$%ab";

count(str);

}

static void count(String str) {

char[] charArray = str.toCharArray();

String digit = "";

int digitCount = 0;

String upper = "";

int upperCount = 0;

String lower = "";

int lowerCount = 0;

String other = "";

int otherCount = 0;

for (char ch : charArray) {

if (Character.isUpperCase(ch)) {

upperCount++;

upper += Character.toString(ch);

}

if (Character.isLowerCase(ch)) {

lowerCount++;

lower += Character.toString(ch);

}

if (Character.isDigit(ch)) {

digitCount++;

digit += Character.toString(ch);

}

if (!Character.isLetterOrDigit(ch)) {

otherCount++;

other += Character.toString(ch);

}

}

System.out.printf("大寫字母%d個:\"%s\";\n小寫字母%d個:\"%s\";\n數字%d個:\"%s\";\n其他字符%d個:\"%s\"。\n", upperCount, upper,

lowerCount, lower, digitCount, digit, otherCount, other);

}

}

// 大寫字母4個:"ABCD";

// 小寫字母2個:"ab";

// 數字3個:"123";

// 其他字符5個:"!@#$%"。

第二題

如: s1=“asdafghjka”, s2=“aaasdfg” 他們的最大子串為"asd"

提示: 將短的那個串進行長度依次遞減的子串與較長的串比較。

思路:

1、判斷兩個字符串的長度大小;

2、若長的字符串包含短的字符串,則短字符串為兩者最大子串;

3、短的字符串長度依次遞減,觀察長的字符串是否包含,若包含,則此時為兩者的最大子串,以"aaasdfg"為例:

當長度=7時,有1子串——(0,7)“aaasdfg”;因前面做了先行判斷,可跳過;

當長度=6時,有2子串——(0,6)“aaasdf”;(1,7)“aasdfg”;

當長度=5時,有3子串——(0,5)“aaasd”;(1,6)“aasdf”;(2,7)“asdfg”;

當長度=4時,有4子串——(0,4)“aaas”;(1,5)“aasd”;(2,6)“asdf”;(3,7)“sdfg”;

3、規律總結:

第一次:i=0,j=0–>(0,7)=(?,?);不確定;

第二次:i=1,j=0–>(0,6)=(j,7-i); i=1,j=1–>(0,6)=(j,7-i+j);確定下標起點為j,猜想終點位置為7-i+j,繼續驗證;

第三次:i=2,j=0–>(0,5)=(j,7-i+j); i=2,j=1–>(1,6)=(j,7-i+j); i=2,j=2–>(2,7)=(j,7-i+j);確定終點位置為7-i+j。

第一步 判斷兩個字符串長度大小:

static String getMaxSonStr(String s1, String s2) {

String maxStr = s1.length() > s2.length() ? s1 : s2;

String minStr = s1.length() > s2.length() ? s2 : s1;

}

第二步 判斷大字符串是否包含小字符串:

// 如果包含,則直接返回

if (maxStr.contains(minStr))

return minStr;

第三步 遞減小字符串長度,依次判斷:

// 初始化最大字符串

String maxSonStr = "";

// 初始化子串

String sonStr = "";

// 遞減字符串長度

outer: for (int i = 1; i < minStr.length(); i++) {

// 獲取同一長度的所有子串

for (int j = 0; j <= i; j++) {

sonStr = minStr.substring(j, minStr.length() - i + j);

// 如果大字符串包含子串,則賦值給最大子串,跳出外層循環

if (maxStr.contains(sonStr)){

maxSonStr=sonStr;

break outer;

}

}

}

// 如果沒有最大子串,返回""

return maxSonStr;

完整代碼:

package task03.code0302;

public class MaxSonStr {

public static void main(String[] args) {

String maxSonStr = getMaxSonStr("asdafghjka", "aaasdfg");

if ("".equals(maxSonStr)) {

System.out.println("沒有最大子串");

} else {

System.out.println("最大子串:" + maxSonStr);

}

}

static String getMaxSonStr(String s1, String s2) {

String maxStr = s1.length() > s2.length() ? s1 : s2;

String minStr = s1.length() > s2.length() ? s2 : s1;

String maxSonStr = "";

String sonStr = "";

if (maxStr.contains(minStr))

return minStr;

outer: for (int i = 1; i < minStr.length(); i++) {

for (int j = 0; j <= i; j++) {

sonStr = minStr.substring(j, minStr.length() - i + j);

if (maxStr.contains(sonStr)) {

maxSonStr = sonStr;

break outer;

}

}

}

return maxSonStr;

}

}

// 最大子串:asd

第三題

準備一個 HashMap 集合,統計字符串"123,456,789,123,456"中每個數字字符串出現的次數并打印出來。

如:

? 123 出現了 2 次

? 456 出現了 2 次

? 789 出現了 1 次

第一步 拆分字符串為字符串數組:

String[] str ="123,456,789,123,456".split(",");

第二步 定義一個HashMap:

// 將字符串作為key;

// value作為計數;

Map strMap = new HashMap<>();

第三步 遍歷字符串數組放入HashMap,如果key重復則value+1覆蓋原有鍵值對:

// 遍歷字符串數組

for (int i =0;i

if (!strMap.containsKey(str[i])) {

// 如果不存在key,則放入當前字符串,并value為1,表示該字符串出現了1次

strMap.put(str[i], 1);

}else{

// 如果已經存在當前字符串,獲取一存在該字符串key的value,加以后覆蓋既有鍵值對,表示該字符串出現了+1次

strMap.put(str[i], strMap.get(str[i])+1);

}

}

完整代碼:

package task03.code0303;

import java.util.HashMap;

import java.util.Map;

import java.util.Set;

public class HashMapPractice {

public static void main(String[] args) {

String[] str ="123,456,789,123,456".split(",");

Map strMap = new HashMap<>();

for (int i =0;i

if (!strMap.containsKey(str[i])) {

strMap.put(str[i], 1);

}else{

strMap.put(str[i], strMap.get(str[i])+1);

}

}

// 打印結果

Set keys = strMap.keySet();

for (String key : keys) {

System.out.printf("%s出現了%d次;\n",key,strMap.get(key));

}

}

}

// 123出現了2次;

// 456出現了2次;

// 789出現了1次;

第四題

使用 List 集合實現簡易的學生信息管理系統,要求打印字符界面提示用戶選擇相應的功 能,根據用戶輸入的選擇去實現增加、刪除、修改、查找以及遍歷所有學生信息的功能。

其中學生的信息有:學號、姓名、年齡。 要求: 盡量將功能拆分為多個.java 文件。

前提條件:采用LinkedList

第一步 定義學生類:

package task03.code0304;

import java.util.Objects;

public class Student {

// 學號、姓名、年齡

private String name;

private int id;

private int age;

// 有參構造

Student(int id,String name,int age){

setId(id);

setName(name);

setAge(age);

}

public void setAge(int age) {

this.age = age;

}

public void setId(int id) {

this.id = id;

}

public void setName(String name) {

this.name = name;

}

public int getAge() {

return age;

}

public int getId() {

return id;

}

public String getName() {

return name;

}

// 用學號作為對象的等價標準

@Override

public boolean equals(Object obj) {

if (this==obj) return true;

if(obj==null||this.getClass()!=obj.getClass())return false;

Student b = (Student)obj;

return id==b.id;

}

// 返回學號的哈希碼

@Override

public int hashCode() {

return Objects.hash(id);

}

// 打印對象輸出格式

@Override

public String toString() {

return "id:" + id + ", name:'" + name + "',age:"+age;

}

}

第二步 增加學生對象功能:

package task03.code0304;

import java.util.List;

public class Add {

/**

* 添加學生對象

*

* @param id 學號

* @param name 姓名

* @param age 年齡

* @param listStudents 存放學生對象的List

*/

public static void addStudent(int id, String name, int age,List listStudents) {

Student newStudent = new Student(id, name, age);

boolean flag = listStudents.contains(newStudent);

if (flag) {

System.out.printf("學號%d已經存在,添加失敗\n", id);

} else {

listStudents.add(newStudent);

System.out.printf("%s添加成功\n", name);

}

}

}

第三步 刪除學生對象功能:

package task03.code0304;

import java.util.List;

public class Delete {

/**

* 通過學號刪除學生對象

*

* @param id 學號

* @param listStudents

*/

public static void deleteStudent(int id, List listStudents) {

// 遍歷學生對象List

for (Student student : listStudents) {

// 獲取當前對象索引

int index = listStudents.indexOf(student);

// 如果當前對象id等于目標id

if (id == student.getId()) {

// 刪除

listStudents.remove(index);

System.out.printf("%d刪除成功\n", student.getId());

}

}

}

}

第四步 查詢學生對象:

package task03.code0304;

import java.util.List;

public class Search {

/**

* 查詢學生對象

*

* @param id 學號

* @param listStudents

* @return 返回學生對象或者null

*/

public static Student seachStudent(int id, List listStudents) {

// 遍歷List,返回目標

for (Student student : listStudents) {

if (id == student.getId()) {

return student;

}

}

// 如果不存在,則返回null

return null;

}

}

第五步 修改學生對象:

package task03.code0304;

public class Change {

/**

* 修改學生對象

*

* @param id 修改后的學號

* @param name 修改后的姓名

* @param age 修改后的年齡

* @param student 修改的對象

*/

public static void changeStudent(int id,String name, int age,Student student) {

student.setId(id);

student.setAge(age);

student.setName(name);

System.out.println("修改成功!");

}

}

第六步 打印所有學生信息:

package task03.code0304;

import java.util.List;

public class Print {

/**

* 打印所有學生對象

*

* @param listStudents

*/

public static void printStudents(List listStudents) {

for (Student student : listStudents) {

System.out.println(student);

}

}

}

第七步 系統主菜單:

package task03.code0304;

import java.util.LinkedList;

import java.util.List;

import java.util.Scanner;

public class Main {

public static void getStart() {

// 定一個存放學生對象的list

List listStudents = new LinkedList<>();

// 獲取輸入

Scanner sc = new Scanner(System.in);

// 用于接收輸入的值

int age;

int id;

String name;

while (true) {

// 打印菜單

System.out.println("1、增加學生信息;\n" + "2、查詢學生信息;\n" + "3、刪除學生信息;\n" + "4、修改學生信息;\n" + "5、打印所有學生;\n" + "0、退出;");

// 獲取輸入的菜單選項

int flag = sc.nextInt();

switch (flag) {

// 增加

case 1:

System.out.println("輸入id");

id = sc.nextInt();

System.out.println("輸入姓名");

name = sc.next();

System.out.println("輸入年齡");

age = sc.nextInt();

Add.addStudent(id, name, age, listStudents);

break;

// 查找

case 2:

System.out.println("輸入id");

id = sc.nextInt();

Student seachStudent = Search.seachStudent(id, listStudents);

if (null == seachStudent) {

System.out.println("無對象");

} else {

System.out.println("搜索成功" + seachStudent);

}

break;

case 3:

System.out.println("輸入需要刪除的id");

id = sc.nextInt();

Delete.deleteStudent(id, listStudents);

break;

// 修改-->先查詢、再修改

case 4:

System.out.println("輸入要修改的id");

id = sc.nextInt();

Student getStudent = Search.seachStudent(id, listStudents);

// 如果查詢結果為null,則退出,否則執行下面的修改操作

if (null == getStudent) {

System.out.println("無對象");

break;

}

System.out.println("輸入id");

id = sc.nextInt();

System.out.println("輸入姓名");

name = sc.next();

System.out.println("輸入年齡");

age = sc.nextInt();

Change.changeStudent(id, name, age, getStudent);

break;

// 打印所有對象

case 5:

System.out.println("print");

Print.printStudents(listStudents);

break;

// 打印退出系統

case 0:

System.out.println("正在退出系統...");

break;

default:

System.out.println("請重新選擇");

break;

}

// 結束循環,退出系統

if (0 == flag)

break;

}

sc.close();

}

}

第八步 測試:

package task03.code0304;

public class MainTest {

public static void main(String[] args) {

Main.getStart();

}

}

// 1、增加學生信息;

// 2、查詢學生信息;

// 3、刪除學生信息;

// 4、修改學生信息;

// 5、打印所有學生;

// 0、退出;

// 1

// 輸入id

// 100

// 輸入姓名

// 張三

// 輸入年齡

// 22

// 張三添加成功

// 1、增加學生信息;

// 2、查詢學生信息;

// 3、刪除學生信息;

// 4、修改學生信息;

// 5、打印所有學生;

// 0、退出;

// 2

// 輸入id

// 100

// 搜索成功id:100, name:'張三',age:22

// 1、增加學生信息;

// 2、查詢學生信息;

// 3、刪除學生信息;

// 4、修改學生信息;

// 5、打印所有學生;

// 0、退出;

// 4

// 輸入要修改的id

// 100

// 輸入id

// 101

// 輸入姓名

// 李四

// 輸入年齡

// 33

// 修改成功!

// 1、增加學生信息;

// 2、查詢學生信息;

// 3、刪除學生信息;

// 4、修改學生信息;

// 5、打印所有學生;

// 0、退出;

// 5

// print

// id:101, name:'李四',age:33

// 1、增加學生信息;

// 2、查詢學生信息;

// 3、刪除學生信息;

// 4、修改學生信息;

// 5、打印所有學生;

// 0、退出;

// 0

// 正在退出系統...

第五題

使用集合實現斗地主游戲的部分功能,要求如下:

(1)首先準備 54 張撲克牌并打亂順序。

(2)由三個玩家交替摸牌,每人 17 張撲克牌,最后三張留作底牌。

(3)查看三個玩家手中的撲克牌和底牌。

(4)其中玩家手中的撲克牌需要按照大小順序打印,規則如下:

手中撲克牌從大到小的擺放順序:大王,小王,2,A,K,Q,J,10,9,8,7,6,5,4,3

第一步 生成撲克牌:

// 按大小順序

String[] value = { "大王", "小王", "2", "A", "K", "Q", "J", "10", "9", "8", "7", "6", "5", "4", "3" };

// 花色

String[] type = { "紅桃", "黑桃", "梅花", "方塊" };

// 存放生成的撲克牌

Map cards = new HashMap<>();

// 1-54的整數list,用于打亂順序取撲克牌,模擬洗牌

List order = new ArrayList<>();

// 初始化撲克牌序號

int index = 1;

// 遍歷牌面值value

for (int i = 0; i < value.length; i++) {

// 遍歷花色type

for (int j = 0; j < type.length; j++) {

// 前兩張大小王沒有花色

if (i < 2) {

// 添加撲克牌序號與牌面

cards.put(index, value[i]);

// 添加序號

order.add(index);

index++;

// 跳出內循環

break;

} else {

// 大小王外,添加序號與花色+牌面

cards.put(index, type[j] + value[i]);

// 添加序號

order.add(index);

index++;

}

}

}

第二步 洗牌:

// 打亂ArrayList順序

Collections.shuffle(order);

第三步 發牌與排序:

// 發牌原理:將order的元素一次分配給其他四個ArrayList對象

// 玩家a

private static List a = new ArrayList<>();

// 玩家b

private static List b = new ArrayList<>();

// 玩家c

private static List c = new ArrayList<>();

// 底牌

private static List x = new ArrayList<>();

// 遍歷order元素

for (int i = 0; i < order.size(); i++) {

// 獲取order元素

int cardId = order.get(i);

// 前三個元素添加進底牌

if(i<3){

x.add(cardId);

}

// a 玩家摸牌

else if (i%3==1) {

a.add(cardId);

}

// b 玩家摸牌

else if(i%3==2){

b.add(cardId);

}

// c 玩家摸牌

else{

c.add(cardId);

}

}

// 元素排序

Collections.sort(a);

Collections.sort(b);

Collections.sort(c);

第四步 顯示真正牌面:

// 遍歷a,從撲克牌中取出牌面

for (Integer integer : a) {

System.out.print(cards.get(integer)+" ");

}

......

完整代碼:

package task03.code0305;

import java.util.ArrayList;

import java.util.Collections;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

public class Landlords {

private static String[] value = { "大王", "小王", "2", "A", "K", "Q", "J", "10", "9", "8", "7", "6", "5", "4", "3" };

private static String[] type = { "紅桃", "黑桃", "梅花", "方塊" };

private static Map cards = new HashMap<>();

private static List order = new ArrayList<>();

private static List a = new ArrayList<>();

private static List b = new ArrayList<>();

private static List c = new ArrayList<>();

private static List x = new ArrayList<>();

public static void getCards() {

int index = 1;

for (int i = 0; i < value.length; i++) {

for (int j = 0; j < type.length; j++) {

if (i < 2) {

cards.put(index, value[i]);

order.add(index);

index++;

break;

} else {

cards.put(index, type[j] + value[i]);

order.add(index);

index++;

}

}

}

}

public static void shuffle(){

Collections.shuffle(order);

}

public static void distribute(){

for (int i = 0; i < order.size(); i++) {

int cardId = order.get(i);

if(i<3){

x.add(cardId);

}

else if (i%3==1) {

a.add(cardId);

}else if(i%3==2){

b.add(cardId);

}else{

c.add(cardId);

}

}

Collections.sort(a);

Collections.sort(b);

Collections.sort(c);

}

public static void showCards(){

System.out.println("a玩家:");

printCards(a);

System.out.println("\nb玩家:");

printCards(b);

System.out.println("\nc玩家:");

printCards(c);

System.out.println("\n底牌:");

printCards(x);

}

private static void printCards(List l){

for (Integer integer : l) {

System.out.print(cards.get(integer)+" ");

}

}

}

測試:

package task03.code0305;

public class LandlordsTest {

public static void main(String[] args) {

// 獲取撲克

Landlords.getCards();

// 洗牌

Landlords.shuffle();

// 發牌

Landlords.distribute();

// 顯示牌

Landlords.showCards();

}

}

// a玩家:

// 梅花2 方塊2 梅花A 方塊K 黑桃Q 方塊Q 梅花J 方塊J 紅桃10 梅花10 紅桃7 紅桃6 方塊6 紅桃5 梅花5 梅花3 方塊3

// b玩家:

// 大王 黑桃2 黑桃A 方塊A 紅桃K 紅桃Q 紅桃J 黑桃9 方塊9 黑桃8 梅花8 黑桃7 梅花7 紅桃4 黑桃4 方塊4 黑桃3

// c玩家:

// 小王 紅桃2 紅桃A 黑桃K 梅花K 梅花Q 黑桃J 黑桃10 紅桃9 梅花9 紅桃8 方塊8 黑桃6 梅花6 黑桃5 梅花4 紅桃3

// 底牌:

// 方塊5 方塊10 方塊7

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/378726.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/378726.shtml
英文地址,請注明出處:http://en.pswp.cn/news/378726.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

11-圖像梯度-Sobel算子

圖像梯度是指圖像某像素在x和y兩個方向上的變化率&#xff08;與相鄰像素比較&#xff09;&#xff0c;是一個二維向量&#xff0c;由2個分量組成&#xff0c;X軸的變化、Y軸的變化 。 其中X軸的變化是指當前像素右側&#xff08;X加1&#xff09;的像素值減去當前像素左側&…

給IE有效指定編碼

<title>下一站</title> <meta http-equiv"Content-Type" content"text/html; charsetutf-8" /> IE每次打開&#xff0c;均是一片空白&#xff0c;查看右鍵&#xff0d;編碼&#xff0c;顯示是GB2312。要手功改為UTF-8后才能正常顯示頁面…

形態學操作——擊中擊不中變換

操作目的 HitMiss變換是形態檢測的一個工具&#xff0c;通過定義形狀模板可以在圖像中獲取同一形狀物體的位置坐標。 算法講解 1、用擊中結構去腐蝕原始圖像得到擊中結果X&#xff08;這個過程可以理解為在原始圖像中尋找和擊中結構完全匹配的模塊&#xff0c;匹配上了之后&…

stack.pop()方法_C.示例中的Stack.Pop()方法

stack.pop()方法C&#xff03;Stack.Pop()方法 (C# Stack.Pop() method) Stack.Pop() method is used to remove an object from the top of the stack. The method removes and returns the object from the top. Stack.Pop()方法用于從堆棧頂部刪除對象。 該方法從頂部刪除并…

java list的作用_集合框架(List集合的特有功能概述和測試)

package cn.itcast_03;import java.util.ArrayList;import java.util.List;/** List集合的特有功能&#xff1a;* A:添加功能* void add(int index,Object element):在指定位置添加元素* B:獲取功能* Object get(int index):獲取指定位置的元素* C:列表迭代器* ListIterator li…

12-圖像梯度-Scharr算子和laplacian算子

Scharr算子 cv2.Scharr(img,cv2.CV_64F,1,0) 第一個參數&#xff1a;當前的圖像對象名稱 第二個參數&#xff1a;當前圖像的深度&#xff0c;通常情況下指定為-1&#xff0c;表示輸出和輸入的深度是一樣的&#xff1b;cv2.CV_64F可以存6字節的大小&#xff0c;為了方便后面的取…

新的一年新希望,百忙中繼續學習

公司來了一批新同事&#xff0c;我又忙于購買設備&#xff0c;布置辦公桌了。 小林建議我找一份更合適的工作&#xff0c;目前的我其實是在混日子&#xff0c;因為我并不擅長溝通與銷售。 暫時還是保持這樣吧&#xff0c;我還需要一定時間來積蓄力量。 轉載于:https://www.cnbl…

Oracle Internal Event:10200 Consistent Read診斷事件

10200(consistent read buffer status)內部診斷事件可以用于探測一致性讀CR(consistent read)塊的訪問情況&#xff0c;雖然cr讀的統計信息可以從v$sysstat或AWR/statspack中獲取&#xff0c;但是10200 event還是我們研究Consistent Read一致性讀的有力工具。該事件可以通過在會…

多線程循環輸出abcc++_C ++循環| 查找輸出程序| 套裝4

多線程循環輸出abccProgram 1: 程序1&#xff1a; #include <iostream>using namespace std;int A 5;int fun(){return A--;}int main(){int A 5;while (fun()) {cout << A ::A << " ";}return 0;}Output: 輸出&#xff1a; 9 8 7 6 5Explana…

Opencv——圖像金字塔與圖像尺寸縮放

主要講解 1、resize()函數調用 函數定義&#xff1a; 調用方式&#xff1a; resize(srcImage, dstImage, Size(64, 128)); //對圖片進行修改 resize(srcImage, dstImage, Size(), 0.5, 0.5);第6個參數的含義&#xff1a; INTER_NEAREST:最鄰近插值 (放大好用) INTER_ARE…

java nature_Java中BufferedReader和scanner的對比 - nature

原地址&#xff1a;http://blog.sina.com.cn/s/blog_5fd837410100rtwk.html Scanner 和BufferedReader同樣能實現將鍵盤輸入的數據送入程序&#xff0c; import java.io.*; import java.util.Scanner; public class C { public static void main(String []args) throws IOExcep…

13-Canny邊緣檢測

Canny邊緣檢測主要思路步驟如下&#xff1a; 1&#xff0c;使用高斯濾波器&#xff0c;以平滑圖像&#xff0c;濾除噪聲 2&#xff0c;計算圖像中每個像素點的梯度強度和方向 3&#xff0c;應用非極大值抑制&#xff0c;以消除邊緣檢測帶來的雜散響應 4&#xff0c;應用雙閾值檢…

c# uri.host_C#| Uri.IsHexEncoding()方法與示例

c# uri.hostUri.IsHexEncoding()方法 (Uri.IsHexEncoding() Method) Uri.IsHexEncoding() method is a static method or Uri class. Which is used to return that given string is hex-encoded or not? If the given string is hex coded then it returns true otherwise it…

一位老鳥對 23 種設計模式的有趣見解(轉)

在網絡上流暢很廣的一篇舊文&#xff0c;暫時沒找到原作者&#xff0c;目前所看到的最早轉載時間是 2005 年 2 月 28 日。作者用輕松的語言&#xff0c;形象解釋了 23 種模式&#xff0c;有很好的啟發作用。創建型模式 1、FACTORY—追MM少不了請吃飯了&#xff0c;麥當勞的雞翅…

微機原理——移位指令

例題 思路 選擇移位語句&#xff0c;右移&#xff0c;將AL移出的送入DX左端&#xff0c;將BL移出的送入DX左端。循環八次 MOV AL,01100101B; MOV BL,11011010B; XOR DX,DX;兩個值相同&#xff0c;異或結果為0。等效&#xff1a;MOV DX,0 MOV CX,8;count L1: SHR AL,1;邏輯右…

14-圖像金字塔

由第一個圖可知&#xff0c;圖像金字塔這無非就是對圖像進行放大和縮小罷了 1&#xff0c;高斯金字塔 向下采樣方法(縮小)&#xff0c;越采樣越小&#xff0c;即從金字塔底部向上采樣 cv2.pyrDown(img) 向上采樣方法(放大)&#xff0c;越采樣越大&#xff0c;即從金字塔頂…

JAVA和javascrito_JAVA 和JavaScript的split方法異同

Split的方法很常用&#xff0c;除了str.split("regex")&#xff0c;其實還可以多傳一個參數&#xff1a;str.split("regex", limit)。但是要注意&#xff0c;JavaScript和java的split中limit參數作用是不同的。簡單說&#xff0c;JavaScript中&#xff0c;…

如果__name__ =='__main__':在Python中怎么辦?

In order to understand the details of __name__ variable and the if condition, let us go through a simple exercise. Run a simple python file with just the following lines and run the file as python3 code, 為了了解__name__變量和if條件的詳細信息&#xff0c;讓…

Eclipse C/C++開發環境搭建

1 Eclipse的安裝 到http://java.sun.com/j2se/1.5.0/download.jsp 下載JRE安裝&#xff1b; 到http://eclipse.org下載Eclipse安裝。&#xff08;這兒可以下載Java版本的&#xff0c;也可以下載C/C 版本的&#xff09; 2 對于下載的Java版本或著只下載Eclipse IDE的&#xff0c…

微機原理——尋址方式總結

一、操作數的尋址方式 立即尋址方式 格式: 操作碼 數字表達式&#xff08;將數據送入寄存器中&#xff09; 源操作數可以是8位也可以是16位。 MOV AH, F5H &#xff08;字節操作&#xff09; F5H稱為立即數(8位操作數) MOV AL, 8AH &#xff08;字節操作&#xff09; 8AH稱為…