java string to int将int [][] a={{1...

java 当中int a[] = {0}-中国学网-中国IT综合门户网站-提供健康,养生,留学,移民,创业,汽车等信息
> 信息中心 >
java 当中int a[] = {0}
来源:互联网 发表时间: 21:43:44 责任编辑:李志喜字体:
为了帮助网友解决“java 当中int a[] = {0}”相关的问题,中国学网通过互联网对“java 当中int a[] = {0}”相关的解决方案进行了整理,用户详细问题包括:RT,我想知道:java 当中int a[] = {0}什么意思,具体解决方案如下:解决方案1:
定义了一个数组a 其长度是1赋值第一个元素 a[0] 它的值是0 即 a[0] = 0;
解决方案2:
a数组的第一个值是0,并且长度是1,应该是这样的
解决方案3:
就是等于int a[1];a[0] = 0;
解决方案4:
声明一个int型的数组,,,只有一个元素0,
解决方案5:
这个很简单。我来给你分析这个是一边定义一边赋值。int a[ ] 这个是个整形的一个数组接着 int a[ ] = {0} ;证明这个数组只有一个数据,那就是0.也就是说a[0]=0还有什么不明白的吗?不明白可以再问我。
解决方案6:
这个是Java中一种声明数组的方式之一,其意思是:声名一个int类型的数组a,并给数组赋于了一个长度的值0,如果你想访问这个数组可以用:a[0],这里的意思是:数组a的第一个元素!当然Java中还有其它的声明数组的方式:例如:1.(java中的类型)String[] a = new String[数组的长度]; 或是String a[] = new String[长度]; 这里是直接指定长度,当然也可以用赋值的方式给定长度,就向上面写的
解决方案7:
定义一个整形数组 a,数组中只有一个元素0;
解决方案8:
这个是个数组 int a[] = {0}
定义变量 a[] 中的元素只有一个值且值为0
相关文章:
最新添加资讯
24小时热门资讯
Copyright © 2004- All Rights Reserved. 中国学网 版权所有
京ICP备号-1 京公网安备02号91974人阅读
java(86)
位运算符主要针对二进制,它包括了:“与”、“非”、“或”、“异或”。从表面上看似乎有点像逻辑运算符,但逻辑运算符是针对两个关系运算符来进行逻辑运算,而位运算符主要针对两个二进制数的位进行逻辑运算。下面详细介绍每个位运算符。
1.与运算符
与运算符用符号“&”表示,其使用规律如下:
两个操作数中位都为1,结果才为1,否则结果为0,例如下面的程序段。
public class data13
public static void main(String[] args)
int a=129;
int b=128;
System.out.println(&a 和b 与的结果是:&+(a&b));
a 和b 与的结果是:128
下面分析这个程序:
“a”的值是129,转换成二进制就是,而“b”的值是128,转换成二进制就是。根据与运算符的运算规律,只有两个位都是1,结果才是1,可以知道结果就是,即128。
2.或运算符
或运算符用符号“|”表示,其运算规律如下:
两个位只要有一个为1,那么结果就是1,否则就为0,下面看一个简单的例子。
public class data14
public static void main(String[] args)
int a=129;
int b=128;
System.out.println(&a 和b 或的结果是:&+(a|b));
a 和b 或的结果是:129
下面分析这个程序段:
a 的值是129,转换成二进制就是,而b 的值是128,转换成二进制就是,根据或运算符的运算规律,只有两个位有一个是1,结果才是1,可以知道结果就是,即129。
3.非运算符
非运算符用符号“~”表示,其运算规律如下:
如果位为0,结果是1,如果位为1,结果是0,下面看一个简单例子。
public class data15
public static void main(String[] args)
System.out.println(&a 非的结果是:&+(~a));
4.异或运算符
异或运算符是用符号“^”表示的,其运算规律是:
两个操作数的位中,相同则结果为0,不同则结果为1。下面看一个简单的例子。
public class data16
public static void main(String[] args)
System.out.println(&a 与 b 异或的结果是:&+(a^b));
a 与 b 异或的结果是:13
分析上面的程序段:a 的值是15,转换成二进制为1111,而b 的值是2,转换成二进制为0010,根据异或的运算规律,可以得出其结果为1101 即13。
Java中的运算符(操作符)
&&& 程序的基本功能是处理数据,任何编程语言都有自己的运算符。因为有了运算符,程序员才写出表达式,实现各种运算操作,实现各种逻辑要求。
&& 为实现逻辑和运算要求,编程语言设置了各种不同的运算符,且有优先级顺序,所以有的初学者使用复杂表达式的时候搞不清楚。这里详细介绍一下Java中的运算符。
&&& Java运算符很多,下面按优先顺序列出了各种运算符。
运算符分类
.&&& []&&&& ( )&&&& ;&&&&& ,
一元运算符
!& ++&&&& --&&&& -&& ~
算术运算符
移位运算符
*&&&& /&&&&& %&&& +&&&& -&&&&& &&&& &&&& &&&
关系运算符
&&&&& &&&&& &=&& &=&& instanceof(Java 特有)&& = =& !=
逻辑运算符
!&&&& ||& ~& && |& ^&
三目运算符
布尔表达式?表达式1:表达式2
赋值运算符
=& *=&&&& /=& %=&& +=&& -=&&& &&= &&= &&&=& &=& *=& |=
一、一元运算符
&&& 因操作数是一个,故称为一元运算符。
改变数值的符号,取反
-x(-1*x)
逐位取反,属于位运算符
++
x++
++x 因为++在前,所以先加后用。
x++ 因为++在后,所以先用后加。
注意:a+ ++b和a+++b是不一样的(因为有一个空格)。
&&int a=10;
&&int b=10;
&&int sum=a+ ++b;
&&System.out.println(&a=&+a+&,b=&+b+&,sum=&+sum);
运行结果是: a=10,b=11,sum=21
& int a=10;
&&int b=10;
&&int sum=a+++b;
&&System.out.println(&a=&+a+&,b=&+b+&,sum=&+sum);
运行结果是:a=11,b=10,sum=20
变量n的二进制数形式:&&&&&&&&&&&&&&&& 00
逐位取反后,等于十进制的-11:&11 &
二、算术运算符
&&& 所谓算术运算符,就是数学中的加、减、乘、除等运算。因算术运算符是运算两个操作符,故又称为二元运算符。
取模运算(求余运算)
&&& 这些操作可以对不同类型的数字进行混合运算,为了保证操作的精度,系统在运算过程中会做相应的转化。数字精度的问题,我们在这里不再讨论。下图中展示了运算过程中,数据自动向上造型的原则。
&&& 注:1、实线箭头表示没有信息丢失的转换,也就是安全性的转换,虚线的箭头表示有精度损失的转化,也就是不安全的。
&&&&& 2、当两个操作数类型不相同时,操作数在运算前会子松向上造型成相同的类型,再进行运算。
示例如下:
int&a=22;&&int&b=5;&&double&c=5;&&&&System.out.println(b+&+&+c+&=&+(b+c));&&System.out.println(b+&-&+c+&=&+(b-c));&&System.out.println(b+&*&+c+&=&+(b*c));&&System.out.println(a+&/&+b+&=&+(a/b));&&System.out.println(a+&%&+b+&=&+(a%b));&&System.out.println(a+&/&+c+&=&+(a/c));&&System.out.println(a+&%&+c+&=&+(a%c));&&
运行结果如下:
5+5.0=10.0
5*5.0=25.0
22/5.0=4.4
22%5.0=2.0
三、移位运算符
&& 移位运算符操作的对象就是二进制的位,可以单独用移位运算符来处理int型整数。
左移运算符,将运算符左边的对象向左移动运算符右边指定的位数(在低位补0)
&有符号&右移运算 符,将运算符左边的对象向右移动运算符右边指定的位数。使用符号扩展机制,也就是说,如果值为正,则在高位补0,如果值为负,则在高位补1.
&无符号&右移运算 符,将运算符左边的对象向右移动运算符右边指定的位数。采用0扩展机制,也就是说,无论值的正负,都在高位补0.
以int类型的6297为例,代码如下:
System.out.println(Integer.toBinaryString(6297));&&&System.out.println(Integer.toBinaryString(-6297));&&&System.out.println(Integer.toBinaryString(6297&&5));&&&System.out.println(Integer.toBinaryString(-6297&&5));&&&System.out.println(Integer.toBinaryString(6297&&&5));&&&System.out.println(Integer.toBinaryString(-6297&&&5));&&&System.out.println(Integer.toBinaryString(6297&&5));&&&System.out.println(Integer.toBinaryString(-6297&&5));&&
& 运行结果:
注:x&&y 相当于 x*2y ;x&&y相当于x/2y
&&& 从计算速度上讲,移位运算要比算术运算快。
&&& 如果x是负数,那么x&&&3没有什么算术意义,只有逻辑意义。
四、关系运算符
Java具有完备的关系运算符,这些关系运算符同数学中的关系运算符是一致的。具体说明如下:
instanceof操作符用于判断一个引用类型所引用的对象是否是一个类的实例。操作符左边的操作元是一个引用类型,右边的操作元是一个类名或者接口,形式如下:
obj instanceof ClassName&&&&& 或者&&& obj instanceof InterfaceName
关系运算符产生的结果都是布尔型的值,一般情况下,在逻辑与控制中会经常使用关系运算符,用于选择控制的分支,实现逻辑要求。
需要注意的是:关系运算符中的&==&和&!=&既可以操作基本数据类型,也可以操作引用数据类型。操作引用数据类型时,比较的是引用的内存地址。所以在比较非基本数据类型时,应该使用equals方法。
五、逻辑运算符
逻辑非关系值表
逻辑与关系值表
逻辑或关系值表
在运用逻辑运算符进行相关的操作,就不得不说“短路”现象。代码如下:
if(1==1 && 1==2 && 1==3){& }
代码从左至右执行,执行第一个逻辑表达式后:true && 1==2 && 1==3
执行第二个逻辑表达式后:true &&&false && 1==3
因为其中有一个表达式的值是false,可以判定整个表达式的值是false,就没有必要执行第三个表达式了,所以java虚拟机不执行1==3代码,就好像被短路掉了。
逻辑或也存在“短路”现象,当执行到有一个表达式的值为true时,整个表达式的值就为true,后面的代码就不执行了。
“短路”现象在多重判断和逻辑处理中非常有用。我们经常这样使用:
public&void&a(String&str){&&&&if(str!=null&&&&str.trim().length()&0){&&&&&&&&&&}&&}&&
如果str为null,那么执行str.trim().length()就会报错,短路现象保证了我们的代码能够正确执行。
在书写布尔表达式时,首先处理主要条件,如果主要条件已经不满足,其他条件也就失去了处理的意义。也提高了代码的执行效率。
位运算是对整数的二进制位进行相关操作,详细运算如下:
非位运算值表
与位运算值表
或位运算值表
异或位运算值表
示例如下:
int&a=15;&&int&b=2;&&&&System.out.println(a+&&&+b+&=&+(a&b));&&System.out.println(a+&|&+b+&=&+(a|b));&&System.out.println(a+&^&+b+&=&+(a^b));&&
运算结果如下:
程序分析:
按位运算属于计算机低级的运算,现在我们也不频繁的进行这样的低级运算了。
六、三目运算符
&三目运算符是一个特殊的运算符,它的语法形式如下:
布尔表达式?表达式1:表达式2
运算过程:如果布尔表达式的值为true,就返回表达式1的值,否则返回表达式2的值,例如:
int sum=90;
String str=sum&100 ? &失败& : &成功&;
等价于下列代码:
String str=
if(num&100){
& str=&失败&;
& str=&成功&;
三目运算符和if……else语句相比,前者使程序代码更加简洁。
七、赋值运算符
赋值运算符是程序中最常用的运算符了,示例如下:
大家可以根据自己的喜好选择合适的运算符。
字符串运算符: + 可以连接不同的字符串。
转型运算符: () 可以将一种类型的数据或对象,强制转变成另一种类型。如果类型不相容,会报异常出来。
package com.zf.
public class Test1 {
public static void main(String[] args) {
/* 符号为:最高位同时表示图号,0为正数,1为负数 */
1、二进制转换为十进制
二进制转换为10进制的规律为: 每位的值 * 2的(当前位-1次方)
= 0 * 2^7 + 0 * 2^6 + 0 * 2^5 + 0 * 2^4 + 0 * 2^3 + 0 * 2^2 + 0 * 2^1 + 1 * 2^0
= 0 * 2^7 + 0 * 2^6 + 0 * 2^5 + 0 * 2^4 + 0 * 2^3 + 0 * 2^2 + 1 * 2^1 + 0 * 2^0
2、二进制的符号位:
最高位表示符号位,0表示正数
, 1表示负数
3、将二进制负数转换为十进制:先对该二进制数取反,然后加1,再转换为十进制,然后在前面加上负号
最高位为1,所以为负数
第一步:取反:
第二步:加1 :
第三步:转换为10进制:85
第四步:加上负号: -85
转换为十进制为 -85
4、将十进制负数转换为二进制:先得到该十进制负数的绝对值,然后转换为二进制,然后将该二进制取反,然后加1
第一步:得到绝对值 85
第二步:转换为二进制:
第二步:取反:
第三步:加1:
所以,-85转换为二进制为
~ ‘非’ 运算符是将目标数的进制去反,即0变成1 ,1变成0
2的二进制码为
, 它取反为 ,可见取反后结果为负数(二进制负数转换为十进制的步骤为:将二进制去反,然后+1)
转换为10进制 ,第一步去反 得到
然后 加1 得到
,得到的结果为3 ,然后在前面加上负号就可以了
所以结果为-3
System.out.println(~2);
^ 异或 ,计算方式为:两个二进制数的位相同则为0 不同则为1
23转换为二进制为:
12转换为二进制为:
计算结果为:
System.out.println(23 ^ 12);
& 按位与 ,计算方式为:两个二进制数的位都为1则为1 ,否则为0
1的二进制为 :
2的二进制为 :
结果为 : = 0
System.out.println(1&2);
| 按位或 ,计算方式为:两个二进制位有一个为1就为1,否者为0
5 的二进制为:
6 的二进制为:
结果为: = 7
System.out.println( 5 | 6);
&& 有符号右移位
,符号左边表示要被移位的数,右边表示需要移的位数,结果为正数则在左边补0,否则补1
3 的二进制为:
向右移动1位: = 1
System.out.println(3 && 1);
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:886819次
积分:9451
积分:9451
排名:第1504名
原创:182篇
转载:43篇
评论:181条
(2)(1)(2)(1)(1)(1)(2)(3)(1)(1)(4)(3)(5)(7)(1)(3)(2)(6)(27)(4)(4)(3)(4)(16)(15)(25)(10)(12)(10)(5)(20)(27)问大家一个 比较有深度的问题 String a=“1+1”;_java吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:576,502贴子:
问大家一个 比较有深度的问题 String a=“1+1”;收藏
String a=“1+1”;怎么才能转换成 int ? 然后他还能进行运算那? 说没有运算符就能转的就不用说了。。比如 输出 int b 就等于 2
java培训---美国上市公司出品,入学签订就业协议,名企疯抢达内学员.java,O基础小班授课,java专家领衔授课,免费试听,满意后付款!
Integer.parseInt(&1&);
string分割,正则匹配。。你的问题真奇葩。估计没有一个需求会这种要求
String a=(1+1)+&&;
自制计算器
String s=text.getText(); 这个代码里面如果getText()传的 是 1+1*2+3%6 你怎么算出来
spring 的spel表达式可以做到
千锋java,Java+大数据全项目实训,两周免费试听,0基础小班授课!千锋java零学费学习,Java+大数据培训,先入学后付款
如果只是四则运算和括号可以用算法做,如果还有其他的。就用java中的js引擎启动js,使用里面的eval函数进行运算。
String s=text.getText(); 这个代码里面如果getText()传的 是 1+1*2+3%6 你怎么算出来
用indexof,找到+ -*/的下标,再用 substring 截取前后的数字字符,再转成int计算
呵呵我做过,比你这个功能多多了。。。不过思路是一样的,计算器里有的功能我都有
这个题很好嘛看我来解决哈数据结构与算法大家都学过对不对中缀表达式、前缀表达式、后缀表达式大家都知道是怎么回事是不是这个字符串是个中缀表达式对吧把这个中缀表达式转成前缀表达式应该还记得怎么做吧,恩~用两个栈然后前缀表达式求值有人问为啥不直接中缀表达式求值答案是这样不够帅,不能凸显j8风采。实际在计算机中求表达式的值也是先转成前缀表达式再算的,这样不需要考虑各种括号的优先级问题
字符串解析一下就OK了,使用中缀式可以用栈做或者转成逆波兰式再计算
要我,,我就先把两个1截取出来,,
String str=&1+1&;
a=Integer.parseInt(str.substring(0,1));
int b=Integer.parseInt(str.substring(2,3)); System.out.println(a+b);
运算符放到另一个栈里
System.out.println(&2&);
Ognl.getValue(&1+1&,null)貌似apache的ognl下载关闭了。可以绕到struts那里下载。
词法解析,语法解析
String a=&1+1&;
ScriptEngineManager mgr = new ScriptEngineManager();
ScriptEngine engine = mgr.getEngineByMimeType(&application/javascript&);
Object sum= engine.eval(a);
System.out.println(sum.toString());
} catch (ScriptException e) {
e.printStackTrace();
像我这样认真回答楼主的人很少了。。。。import java.util.S//1*5-2/6+2*5/7-1+3*8/7-5public class Calculator {public static void main(String[] args) {System.out.println(&请输入一个字符串表达式&);@SuppressWarnings(&resource&)Scanner sc = new Scanner(System.in);String str = sc.next();String [] arr1 = str.split(&[+-]&);for (int i = 0; i & arr1. i++) {if(arr1[i].contains(&*&)||arr1[i].contains(&/&)){arr1[i]=chenchu(arr1[i]);}}double [] arr4 = new double [arr1.length];for (int i = 0; i & arr4. i++) {arr4[i]=Double.parseDouble(arr1[i]);}char [] arr3 = new char [20];arr3=str.toCharArray();int count =0;char [] op2 = new char [20];for (int i = 0; i & arr3. i++) {if(arr3[i]=='+'){op2[count]='+';count++;}if(arr3[i]=='-'){op2[count]='-';count++;}}for (int i = 0; i & op2. i++) {if(op2[i]=='+'){arr4[0]+=arr4[i+1];}if(op2[i]=='-'){arr4[0]-=arr4[i+1];}}System.out.println(&最后的结果是:&);System.out.println(arr4[0]);}public static String chenchu(String string){//2*5String [] arr1 = string.split(&[/*]&);char [] arr2 = string.toCharArray();char [] op = new char [20];int count =0;for (int i = 0; i & arr2. i++) {if(arr2[i]=='*'){op[count]=arr2[i];count++;}if(arr2[i]=='/'){op[count]=arr2[i];count++;}}double [] arr3 = new double [arr1.length];for (int i = 0; i & arr1. i++) {arr3[i]=Double.parseDouble(arr1[i]);}for (int i = 0; i &op. i++) {if(op[i]=='*'){arr3[0]*=arr3[1];}if(op[i]=='/'){arr3[0]/=arr3[1];}}return arr3[0]+& &;}}
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或6417人阅读
Android学习与开发(10)
JAVA学习与开发(12)
JAVA基于位移的 int类型和tyte[]之间转换
* 基于位移的int转化成byte[]
* @param int
* @return byte[]
public static byte[] intToByte(int number) {
byte[] abyte = new byte[4];
// &&& 与(AND),对两个整型操作数中对应位执行布尔代数,两个位都为1时输出1,否则0。
abyte[0] = (byte) (0xff & number);
// &&&&右移位,若为正数则高位补0,若为负数则高位补1
abyte[1] = (byte) ((0xff00 & number) && 8);
abyte[2] = (byte) ((0xff0000 & number) && 16);
abyte[3] = (byte) ((0xff000000 & number) && 24);
*基于位移的 byte[]转化成int
* @param byte[] bytes
* @return int
public static int bytesToInt(byte[] bytes) {
int number = bytes[0] & 0xFF;
// &|=&按位或赋值。
number |= ((bytes[1] && 8) & 0xFF00);
number |= ((bytes[2] && 16) & 0xFF0000);
number |= ((bytes[3] && 24) & 0xFF000000);
JAVA 基于arraycopy合并两个byte[] 数组
* 基于arraycopy合并两个byte[] 数组
* @param byte[]
* @param byte[]
combineTowBytes(byte[] bytes1,byte[] bytes2){
byte[] bytes3 = new byte[bytes1.length+bytes2.length];
System.arraycopy(bytes1,0,bytes3,0,bytes1.length);
System.arraycopy(bytes2,0,bytes3,bytes1.length,bytes2.length);
return bytes3 ;
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:243553次
积分:2670
积分:2670
排名:第11161名
原创:38篇
转载:11篇
评论:24条
(4)(2)(1)(1)(1)(2)(1)(2)(9)(5)(1)(4)(4)(1)(4)(8)

我要回帖

更多关于 java string to int 的文章

 

随机推荐