我有新的任务,因为我是JAVA的新手,我不知道如何使它工作,我经常搜索这个网站,但所有建议的解决方案对我来说都没有用,或者我没有正确使用它们,如果有人帮助我,我将不胜感激...... 下面的代码是我能找到的最简单的解决方案,但仍然不起作用......
我希望从人们那里获取名称等输入并将其更改为数字(int)...它表示无法从字符串转换为int ... !!
package loveindex;
import java.util.Scanner;
//import java.math.BigInteger;
public class LoveIndex {
private static Scanner scan;
public static void main(String[] args) {
scan = new Scanner(System.in);
System.out.println("Testing Scanner, write something: ");
String testi = scan.nextLine();
System.out.println(testi);
System.out.println("Testing Scanner, write something: ");
String testi2 = scan.nextLine();
System.out.println(testi2);
int ascii = (int) testi;
int ascii = (int) testi2;
}
}
答案 0 :(得分:3)
你可以试试这个:
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("Testing Scanner, write something: ");
String testi = scan.nextLine();
char[] ascii1 = testi.toCharArray();
for(char ch:ascii1){
System.out.println((int)ch+" ");
}
System.out.println("Testing Scanner, write something: ");
String testi2 = scan.nextLine();
char[] ascii2 = testi2.toCharArray();
for(char ch:ascii2){
System.out.println((int)ch+" ");
}
scan.close();
}
答案 1 :(得分:1)
通过使用Java 8的lambda函数以简洁的方式实现相同目的。 根据您的评论(在已接受的答案中),您需要末尾的字符总和?
String str = "name";
int sum = str.chars().reduce(0, Integer::sum);
答案 2 :(得分:0)
您正在尝试将String
分配给int
,其中2个不兼容。您可以获得单个字符的ascii值
int ascii = testi.charAt(0);
答案 3 :(得分:0)
您不能将字符串转换为ascii。您可以将字符转换为ascii
int ascii = (int)some_char;
答案 4 :(得分:0)
首先:Java不使用ASCII。它使用Unicode(UTF-16,大部分时间)。
第二:您可以创建一个函数将String字符转换为Unicode表示形式,如下所示:
public static int[] convert(String str) {
int[] result = new int[str.length()];
for (int i = 0; i < str.length(); i++) {
result[i] = str.charAt(i);
}
return result;
}