「java对称校验」java校验和

博主:adminadmin 2022-11-30 04:54:06 72

今天给各位分享java对称校验的知识,其中也会对java校验和进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

java中如何进行密码校验

一般有2种

办法,

一是用正则表达式匹配法;二就是要你自己写校验字符串的

java代码

用JAVA编程语言编一个程序:判断数组元素是否对称,并且在数组中查找是否有50

写了一段代码,有点繁琐,但基本实现了:

public static void main( String [] args ){

boolean flag = false;

int[] a = {50,1,50};

for (int i = 0; i a.length/2; i++) {

if(a[i]==a[a.length-1-i]){

flag = true;

}else{

flag = false;

}

}

if(flag){

System.out.println("对称");

}else{

System.out.println("不对称");

}

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

if(a[j]==50){

System.out.println("a["+j+"]="+a[j]);

}

}

}

希望对你有帮助。

java实现矩阵相加、相乘,判断是否上(下)三角矩阵、对称矩阵、相等的算法

class Matrix

{

private int value[][]; //存储矩阵元素的二维数组

public Matrix(int m, int n) //构造m行n列的空矩阵

{

this.value=new int[m][n];

}

public Matrix(int n) //构造n行n列的空矩阵

{

this(n,n);

}

public Matrix()

{

this(10,10);

}

public Matrix(int mat[][]) //构造矩阵,由数组mat提供矩阵元素

{

this(mat.length,mat[0].length);

for (int i=0; imat.length; i++)

for (int j=0; jmat[i].length; j++)

this.value[i][j] = mat[i][j];

}

public int get(int i, int j) //获得矩阵第i行第j列的元素,O(1)

{

return value[i][j];

}

public void set(int i, int j, int k) //设置矩阵第i行第j列的元素,O(1)

{

value[i][j]=k;

}

public void add(Matrix b) //this和b两个矩阵相加,改变当前矩阵

{

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

for (int j=0; jthis.value[i].length; j++)

this.value[i][j] += b.value[i][j];

}

public String toString() //行主序遍历,访问矩阵全部元素

{

String str="";

for (int i=0; ivalue.length; i++)

{

for (int j=0; jvalue[i].length; j++)

str += " "+value[i][j];

str += "\n";

}

return str;

}

public Matrix transpose() //矩阵的转置

{

Matrix trans = new Matrix(value[0].length, value.length);

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

for (int j=0; jthis.value[i].length; j++)

trans.value[j][i]=this.value[i][j];

return trans;

}

//判断一个矩阵是否为上三角矩阵

public boolean isUpperTriangularMatrix() {

int i, j = 0;

int c = this.value[1][0];

for(i=1; ithis.value.length; i++)

for(j=0; ji; j++)

if(this.value[i][j] != c)

break;

if(i=this.value.length)

return true;

return false;

}

//判断一个矩阵是否为下三角矩阵

public boolean isLowerTriangularMatrix() {

int i, j = 0;

int c = this.value[0][1];

for(i=0; ithis.value.length-1; i++)

for(j=i+1; jthis.value[0].length; j++)

if(this.value[i][j] != c)

break;

if(i=this.value.length-1)

return true;

return false;

}

//判断一个矩阵是否为对称矩阵

public boolean isSymmetricMatrix () {

int i, j = 0;

for(i=1; ithis.value.length; i++)

for(j=0; ji; j++)

if(this.value[i][j] != this.value[j][i])

break;

if(i=this.value.length)

return true;

return false;

}

//比较两个矩阵是否相等

public boolean equals(Matrix b) {

int i, j = 0;

if(this.value.length != b.value.length || this.value[0].length != b.value[0].length)

return false;

for(i=0; ithis.value.length; i++)

for(j=0; jthis.value[0].length; j++)

if(this.value[i][j] != b.value[j][i])

break;

if(i=this.value.length)

return true;

return false;

}

//计算两个矩阵的乘积

public Matrix multiply(Matrix b){

int i, j, k;

int sum;

Matrix mtr;

if(this.value[0].length != b.value.length) {

return null;

}

mtr = new Matrix(this.value.length, b.value[0].length);

for(i=0; ithis.value.length; i++)

{

for(k=0; kb.value[0].length; k++){

for(sum=0,j=0; jthis.value[0].length; j++){

sum += this.value[i][j] * b.value[j][k];

mtr.value[i][k] = sum;

}

}

}

return mtr;

}

}

public class Test

{

public static void main(String args[])

{

int m1[][]={{1,2,3},{4,5,6}};

Matrix a=new Matrix(m1);

int m2[][]={{1,0,0},{0,1,0}};

Matrix b=new Matrix(m2);

System.out.print("Matrix a:\n"+a.toString());

System.out.print("Matrix b:\n"+b.toString());

a.add(b);

System.out.print("Matrix a:\n"+a.toString());

System.out.println("a的转置矩阵:\n"+a.transpose().toString());

int m3[][] = {{1,2,1},{0,3,1},{0,0,2}};

int m4[][] = {{1,0,0},{2,1,0},{3,2,1}};

int m5[][] = {{1,0,2},{0,1,0},{2,0,2}};

Matrix mtr1 = new Matrix(m3);

Matrix mtr2 = new Matrix(m4);

Matrix mtr3 = new Matrix(m5);

if(mtr1.isUpperTriangularMatrix())

System.out.println("上三角矩阵:\n" + mtr1.toString());

if(mtr2.isLowerTriangularMatrix())

System.out.println("下三角矩阵:\n" + mtr2.toString());

if(mtr3.isSymmetricMatrix())

System.out.println("对称矩阵:\n" + mtr3.toString());

System.out.println(mtr1.toString() + "\n乘以\n" + mtr2.toString() + "\n=\n");

Matrix tempM = mtr1.multiply(mtr2);

System.out.println(tempM.toString());

}

}

java中如何判断数字是否对称

class Test{

public static void main(String[] args) {

int initialNum=22322; //假设是第一次的里程数

Scanner scan = new Scanner(System.in);

System.out.println("请输入当前里程数:");

String str=scan.nextLine();

StringBuilder sb = new StringBuilder(str);

scan.close();

sb.reverse();

String str1 = sb.toString();

if(str.equals(str1)) {

System.out.println("里程数是回文");

int lastNum=Integer.parseInt(str);

int speed=(lastNum-initialNum)/2;

System.out.println("当前时速为:"+speed+"KM/每小时");

} else {

System.out.println("里程数不是回文");

}

}

}

java checksum的校验方式

public class CRC {

/**

* CRC-CCITT(Kermit)验证模式

* @param str

* @return

*/

public String CRC_CCITT_Kermit(String str) {

int j, b, rrrc, c, i;

String tmpBalance;

int k;

rrrc = 0;

tmpBalance = str;

int tmpInt, CharInt;

String tmpChar, tmpStr;

tmpStr = "";

int High;

int Low;

for (j = 1; j = 3; j++) {

if (Character.isDigit(tmpBalance.charAt(2 * j - 2))) {

High = Integer.parseInt(tmpBalance.charAt(2 * j - 2) + "");

} else {

High = 0;

}

if (Character.isDigit(tmpBalance.charAt(2 * j - 1))) {

Low = Integer.parseInt(tmpBalance.charAt(2 * j - 1) + "");

} else {

Low = 0;

}

High = (High 0xff) 4;

High = High | Low;

k = High;

for (i = 1; i = 8; i++) {

c = rrrc 1;

rrrc = rrrc 1;

if ((k 1) != 0) {

rrrc = rrrc | 0x8000;

}

if (c != 0) {

rrrc = rrrc ^ 0x8408;

}

k = k 1;

}

}

for (i = 1; i = 16; i++) {

c = rrrc 1;

rrrc = rrrc 1;

if (c != 0) {

rrrc = rrrc ^ 0x8408;

}

}

c = rrrc 8;

b = rrrc 8;

rrrc = c | b;

tmpInt = rrrc;

tmpStr = "";

for (i = 1; i = 4; i++) {

tmpChar = "";

CharInt = tmpInt % 16;

if (CharInt 9) {

switch (CharInt) {

case 10:

tmpChar = "A";

break;

case 11:

tmpChar = "B";

break;

case 12:

tmpChar = "C";

break;

case 13:

tmpChar = "D";

break;

case 14:

tmpChar = "E";

break;

case 15:

tmpChar = "F";

break;

}

} else {

tmpChar = Integer.toString(CharInt);

}

tmpInt = tmpInt / 16;

tmpStr = tmpChar + tmpStr;

}

System.out.println("tmpStr:" + tmpStr);

return tmpStr;

}

/**

* CRC-CCITT(XModem)

* CRC-CCITT(0xFFFF)

* CRC-CCITT(0x1D0F)

* 校验模式

* @param flag XModem(flag=1) 0xFFFF(flag=2) 0x1D0F(flag=3)

* @param str

* @return

*/

public String CRC_CCITT( int flag,String str) {

int crc = 0x00; // initial value

int polynomial = 0x1021;

byte[] bytes=str.getBytes();

switch(flag){

case 1:

crc=0x00;

break;

case 2:

crc=0xFFFF;

break;

case 3:

crc=0x1D0F;

break;

}

for (int index = 0 ; index bytes.length; index++) {

byte b = bytes[index];

for (int i = 0; i 8; i++) {

boolean bit = ((b (7-i) 1) == 1);

boolean c15 = ((crc 15 1) == 1);

crc = 1;

if (c15 ^ bit) crc ^= polynomial;

}

}

crc = 0xffff;

str = Integer.toHexString(crc);

return str;

}

JAVA怎么做CRC校验的程序

实现方法:最简单的校验就是把原始数据和待比较数据直接进行比较,看是否完全一样这种方法是最安全最准确的。同时也是效率最低的。

应用例子:龙珠cpu在线调试工具bbug.exe。它和龙珠cpu间通讯时,bbug发送一个字节cpu返回收到的字节,bbug确认是刚才发送字节后才继续发送下一个字节的。 实现方法:在数据存储和传输中,字节中额外增加一个比特位,用来检验错误。校验位可以通过数据位异或计算出来。

应用例子:单片机串口通讯有一模式就是8位数据通讯,另加第9位用于放校验值。

bcc异或校验法(block check character)

实现方法:很多基于串口的通讯都用这种既简单又相当准确的方法。它就是把所有数据都和一个指定的初始值(通常是0)异或一次,最后的结果就是校验值,通常把它附在通讯数据的最后一起发送出去。接收方收到数据后自己也计算一次异或和校验值,如果和收到的校验值一致就说明收到的数据是完整的。

校验值计算的代码类似于:

unsigned uCRC=0;//校验初始值

for(int i=0;iDataLenth;i++) uCRC^=Data[i];

适用范围:适用于大多数要求不高的数据通讯。

应用例子:ic卡接口通讯、很多单片机系统的串口通讯都使用。 (Cyclic Redundancy Check)

实现方法:这是利用除法及余数的原理来进行错误检测的

关于java对称校验和java校验和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-11-30,除非注明,否则均为首码项目网原创文章,转载请注明出处。