Lat*_*edi 6 java string comparison
我想它很简单,但我无法理解如何做到这一点:(我已经尝试了==和等于目前为止,但我没有让它们工作.这是一个小编程计算瑞典语的成绩highschool系统(所以只需忽略瑞典语并查看字符串比较.这里的问题是统计函数变量在程序结束时仍然设置为0.
import javax.swing.*;
public class Uppgift1 {
private String[] subjects = {"Matematik","Svenska","Engelska","Idrott",
"Bild","Fysik","Biologi","Kemi","Historia","Geografi",
"Samhällskunskap","Religionskunskap"};`
private String[] grades = new String[subjects.length]; // Lika många element som ämnen
public void setGrades() {
for(int i = 0; i < grades.length; i++){
grades[i] = JOptionPane.showInputDialog("Ange betyg i " + subjects[i] + " (IG, G, VG, MVG)");
}
}
public void statistics() {
int ig = 0;
int g = 0;
int vg = 0;
int mvg = 0;
int points = 0;
for(int i = 0; i < grades.length; i++){
if(grades[i].equals("IG")){
ig++;
}
else if(grades[i] == "G"){
g++;
points += 10;
}
else if(grades[i] == "VG"){
vg++;
points += 15;
}
else if(grades[i] == "MVG"){
mvg++;
points += 20;
}
}
String output = new String("BETYGSSTATISTIK\n");
output += "IG: " + ig + "\n";
output += "G: " + g + "\n";
output += "VG: " + vg + "\n";
output += "MVG: " + mvg + "\n";
output += "Betygspoäng: " + points;
JOptionPane.showMessageDialog(null, output);
}
public static void main(String[] args) {
Uppgift1 prog = new Uppgift1();
prog.setGrades();
prog.statistics();
}
}
Run Code Online (Sandbox Code Playgroud)
Roh*_*ain 30
你已经正确使用了第一个比较,但是后来,你得到了错误的方法.
equals()在比较字符串的内容时总是使用方法,就像在第一种情况下那样.
此外,如果它不能以某种方式工作,可能是因为你的字符串中有空格leading或trailing空格.尝试这样使用它: -
if (grades[i].trim().equals("IG"))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21426 次 |
| 最近记录: |