「java对称校验」java校验和
今天给各位分享java对称校验的知识,其中也会对java校验和进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、java中如何进行密码校验
- 2、用JAVA编程语言编一个程序:判断数组元素是否对称,并且在数组中查找是否有50
- 3、java实现矩阵相加、相乘,判断是否上(下)三角矩阵、对称矩阵、相等的算法
- 4、java中如何判断数字是否对称
- 5、java checksum的校验方式
- 6、JAVA怎么做CRC校验的程序
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校验和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-11-30,除非注明,否则均为
原创文章,转载请注明出处。