char类型与INT类型

jmcai520 2008-09-18 12:40:21

现有string.charAt(0) = 1,如何将它装换成INT类型 如!
int i = 1;
int sum = i + string.charAt(0);
System.out.println(sum);


我想要的结果是2但是却是50请问如何解决呢?希望有代码!o(∩_∩)o...
...全文
321 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
luyer_yuanming 2008-09-20
  • 打赏
  • 举报
回复
[Quote=引用楼主 jmcai520 的帖子:]

现有string.charAt(0) = 1,如何将它装换成INT类型 如!
int i = 1;
int sum = i + string.charAt(0);
System.out.println(sum);


我想要的结果是2但是却是50请问如何解决呢?希望有代码!o(∩_∩)o...
[/Quote]

string.charAt(x)-48

字符1和数字1的ASCII之间差是48。
chiphuo 2008-09-20
  • 打赏
  • 举报
回复
int i = 1;
int sum = i + (string.charAt(0) - 48);
System.out.println(sum);
菜鸟飞行中 2008-09-19
  • 打赏
  • 举报
回复
Integer.parseInt(); 里面只能是String类型的~ 不知道这样写的结果是什么:(""+String.charAt(0));
luxiaoxun 2008-09-19
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 jjm194 的回复:]
Integer.parseInt(); 里面只能是String类型的~ 不知道这样写的结果是什么:(""+String.charAt(0));
[/Quote]

""+String.charAt(0);就是String

char a='1';
System.out.println(Integer.parseInt(""+a)); // 1
int i =a-48;
System.out.println(i); //1
沉沦 2008-09-18
  • 打赏
  • 举报
回复
public class Test {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int i = 1;
String str = "1234";
int sum = i + Integer.parseInt("" + str.charAt(0));
System.out.println(sum);

}

}
liaoyi_ipanel 2008-09-18
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 jjm194 的回复:]
你可以倒着写下,就明白是怎么回事了~ 因为数字0、1、2……9,也是字符,所以在ASCII中也有他的值存在~

对于这些 数字 ,它们的ASCII就是从48~57的,所以,如果你想得到数字~ 那你就:

…… //此处作下 char是否是数字的判断。

string.charAt(0) = 1;

int i=String.charAt(0);

i-=48;  //这里是你一个自减运算;

这样得到的就是数字了~ 呵呵~

如果不是这样处理的,请也告诉我下~ 
[/Quote]
OK
qq369759459 2008-09-18
  • 打赏
  • 举报
回复
那个CharAT()是什么东西呀?我是新手请大虾们指教
qlykssl 2008-09-18
  • 打赏
  • 举报
回复
支持五楼和八楼的解释
pengranxiang 2008-09-18
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 mayuanfei 的回复:]
Integer.valueof?我不记得Integer有这个方法.倒是String有这个方法.Integer的是parseInt吧
[/Quote]
是Integer.valueOf()方法,參數只接受int和String,而且這個返回值是個Integer類型的。
  • 打赏
  • 举报
回复
如果楼主确实想要将一个 char 类型的数字字符转换为 int 类型的话,也可以,用下面这条语句就可以:
int sum = i + (str.charAt(0) - '0');因为在运算过程中,用到的char类型的变量都是取的它的ASCII码来运算的,所以要只需算出当前字符与'0'字符之间的差值就得到当前字符的数字值。
转换前也可以先判断一下当前是否是数字字符:
if (Character.isDigit(str.charAt(0)) {
//要执行的代码块
}
完整代码示例:

public class Test {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int i = 1;
String str = "1a34c";

for (int j = 0; j < str.length(); j++) {
char ch = str.charAt(j);
if (Character.isDigit(ch)) {
int sum = i + ch - '0';
System.out.println("sum = " + sum);
} else {
System.out.println(ch + " 这个字符不是数字");
}
}

}

}

输出结果:
sum = 2
a 这个字符不是数字
sum = 4
sum = 5
c 这个字符不是数字
mayuanfei 2008-09-18
  • 打赏
  • 举报
回复
Integer.valueof?我不记得Integer有这个方法.倒是String有这个方法.Integer的是parseInt吧
lgtwboy 2008-09-18
  • 打赏
  • 举报
回复
public static void main(String args[]){
int i = 1;
String str="1234";
int sum=Integer.valueof(str.charAt(0));
sum+=i;
System.out.println(sum);
}



是这意思?
  • 打赏
  • 举报
回复
看楼主好像是初学者,就把完整代码贴给你吧:

public class Test {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int i = 1;
String str = "1234";
int sum = i + Integer.parseInt("" + str.charAt(0));
System.out.println(sum);

}

}

输出结果就是2
  • 打赏
  • 举报
回复
用5楼的方法可以实现,还可以用这个方法实现:

int i = 1;
int sum = i + string.charAt(0);
System.out.println(sum);

将那一句改成 int sum = i + Integer.parseInt("" + string.charAt(0)); 就可以了.
axman 2008-09-18
  • 打赏
  • 举报
回复
你的题目是不可能的,除非你自己看花了眼.

string.charAt(0) = 1;这句不可能成立
因为charAt(0)无法赋值,

string.charAt(0) == 1?

nt i = 1;
int sum = i + string.charAt(0);
sum肯定是2.


如果你说的是string.charAt(0) == '1'
sum才会是50

可是上面那些答案都是基于string.charAt(0) == 1的,不知道是怎么得到的.
gesanri 2008-09-18
  • 打赏
  • 举报
回复

public class Test9 {

public static void main(String args[]){
int i = 1;
String str="1234";
int sum=Character.getNumericValue(str.charAt(0));
sum+=i;
System.out.println(sum);
}


}
zjx2388 2008-09-18
  • 打赏
  • 举报
回复
Integer.parseInt(Sting类型的)
EverAndNever 2008-09-18
  • 打赏
  • 举报
回复
public class E {
public static void main(String[] args) {
int index=0;//你可以随意选择你要提取的字符串中的任意一个字符用于后面的运算
String s="123";
String temp=s.substring(index,index+1);
int i=1;
Integer nu=new Integer(temp);
//int sum= i + Integer.parseInt("" + s.charAt(0)); //这行的方法比较直接,很好
int sum=i+nu.intValue();//这样的方法就比较间接,且笨拙
System.out.println(sum);
}

}
niuniu20008 2008-09-18
  • 打赏
  • 举报
回复

public class Test{

public static void main(String args[]){

String string = "123456";
int i = 1;
int sum = i + Character.getNumericValue(string.charAt(0));

System.out.println(sum);
}
}
lcr555 2008-09-18
  • 打赏
  • 举报
回复
为什么要换成int型?
加载更多回复(2)

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧