Java 如何将字符串转换为数组整数?
我正在尝试将Java 如何将字符串转换为数组整数?,java,android-studio,Java,Android Studio,我正在尝试将字符串转换为数组,然后转换为整数,我使代码在java中成功运行,但在android studio中,我转换的数组没有从字符串中获取数组的最后一个值 String y="abc"; String[] array = y.split(""); int[] x = new int[y.length()]; for (int i=0;i<y.length();i++) { String letter=array[i];
字符串
转换为数组,然后转换为整数
,我使代码在java中成功运行,但在android studio中,我转换的数组没有从字符串中获取数组的最后一个值
String y="abc";
String[] array = y.split("");
int[] x = new int[y.length()];
for (int i=0;i<y.length();i++)
{
String letter=array[i];
if( letter.equals("a")){x[i]=1;}
if( letter.equals("b")){x[i]=2;}
if( letter.equals("c")){x[i]=3;}
sum =sum + x[i];
}
String y=“abc”;
字符串[]数组=y.split(“”);
int[]x=新的int[y.长度()];
对于(inti=0;i,您应该在循环外定义“sum”。以保留该值
String y="abc";
String[] array = y.split("");
int[] x = new int[y.length()];
int sum = 0;
for (int i=0;i<y.length();i++) {
String letter=array[i];
if( letter.equals("a")){x[i]=1;}
if( letter.equals("b")){x[i]=2;}
if( letter.equals("c")){x[i]=3;}
sum += x[i];
}
String y=“abc”;
字符串[]数组=y.split(“”);
int[]x=新的int[y.长度()];
整数和=0;
对于(int i=0;i更新
下面的答案基于Android Studio调试器的输出
奇怪的问题
数组将是{”、“a”、“b”、“c”}大小4&因此for循环跳过自y.length()以来的最后一个位置。尝试
int[] x = new int[array.length];
请参阅此问题的答案&&以获取更多参考通过以下方式解决了Android Studio问题:
string.split(“(?!^)”)
有关完整参考,请参见以下代码:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String y="abc";
int sum=0;
String[] array = y.split("(?!^)");
int[] x = new int[array.length];
for (int i=0;i<y.length();i++)
{
String letter=array[i];
if( letter.equals("a")){x[i]=1;}
if( letter.equals("b")){x[i]=2;}
if( letter.equals("c")){x[i]=3;}
sum =sum + x[i];
}
System.out.println("value of sum : "+sum+"");
}
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
字符串y=“abc”;
整数和=0;
字符串[]数组=y.split((?!^)”;
int[]x=新的int[array.length];
对于(int i=0;i将代码更改为:
int sum = 0;
String str = "abc";
char letter = ' ';
char[] charArray= str.toCharArray(); //or use str.split (to a string array)
for (int i=0; i < str.length(); i++)
{
letter = charArray[i];
if(letter == 'a'){ sum += 1; }
else if(letter == 'b'){ sum += 2; }
else if(letter == 'c'){ sum += 3; }
}
int和=0;
String str=“abc”;
字符字符='';
char[]charArray=str.toCharArray();//或使用str.split(到字符串数组)
对于(int i=0;i
这会将字符串拆分为一个,然后将字符与对应的字母进行比较,并根据检查执行计算
检查结果
祝你好运!你在哪里声明/初始化sum?还有,也许if(letter.equals(“c”){x[i]=3;}
会以某种方式失败。请看下面的答案。是的,我做了所有这些为什么你要使用int数组?为什么不将x[i]=1
替换为sum+=1
?当然,2和3也是如此。所以你有:if(letter.equals(“a”){sum+=1;}
感谢您的回答,但我在声明方法后已经这样做了,始终无法读取数组中的最后一个值,但相同的代码在ECLICETHANKS中工作正常,同样的问题没有改变((但您给了我如何修复它的想法,非常感谢您数组不会是{”、“a”、“b”、“c”}供参考..它将是{“a”、“b”、“c”})。如果你愿意,请检查此项:我的答案基于Android Studio。在Java中运行代码时与在Android Studio中运行代码时似乎有所不同。奇怪!!!@layth你应该接受此答案。他是对的。实际上数组长度是4
。!!请看:…!!我告诉过你它在Java中工作正常,但在Android Studio应用程序中不工作,无论如何,我发现sol注意:Java是一种编程语言,而android studio是一种IDE(集成开发环境)。public void start(View v){int sum=0;int sum1=0;EditText name=(EditText)findviewbyd(R.id.editText);TextView结果=(TextView)findViewById(R.id.TextView);字符串y=name.getText().toString();字符串[]数组=y.split(“”);int[]x=new int[y.length];for(int i=0;i在andoid制作应用程序中选中完整代码,您将看到结果