Java中contains的用法简易
时间: 2023-05-24 08:03:01 浏览: 187
A:Java中的contains()方法用于判断一个字符串中是否包含另一个字符串。其语法为:public boolean contains(CharSequence sequence),其中sequence表示要判断的字符串。
例如:
String str1 = "Hello world!";
String str2 = "world";
if(str1.contains(str2)){
System.out.println(str1 + "包含" + str2);
}else{
System.out.println(str1 + "不包含" + str2);
}
输出结果为:Hello world!包含world
如果要忽略大小写的话,可以使用toLowerCase()或toUpperCase()方法进行转换。例如:
String str1 = "Hello world!";
String str2 = "WORLD";
if(str1.toLowerCase().contains(str2.toLowerCase())){
System.out.println(str1 + "包含" + str2);
}else{
System.out.println(str1 + "不包含" + str2);
}
输出结果为:Hello world!包含WORLD
相关问题
用java制作一个简易计算器。比如:按键得到23*2.2 单机“=”得出结果50.6 。“MC键实现清 除右侧的显示内容。 简易计算器用图形显示出
好的,我可以为您提供一个 Java 编写的简易计算器程序,使用 Swing 实现图形化界面。以下是代码示例:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Calculator extends JFrame implements ActionListener {
private JTextField display = new JTextField("0"); // 显示文本框
private String operator = "="; // 当前操作符
private double result = 0; // 当前结果
public Calculator() {
// 设置窗口属性
setTitle("Calculator");
setSize(300, 400);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 添加显示文本框
display.setEditable(false);
display.setFont(new Font("Arial", Font.PLAIN, 24));
add(display, BorderLayout.NORTH);
// 添加数字按钮
JPanel buttonPanel = new JPanel(new GridLayout(4, 4));
String[] buttonLabels = {"7", "8", "9", "/", "4", "5", "6", "*", "1", "2", "3", "-", "0", ".", "=", "+"};
for (String label : buttonLabels) {
JButton button = new JButton(label);
button.setFont(new Font("Arial", Font.PLAIN, 24));
button.addActionListener(this);
buttonPanel.add(button);
}
add(buttonPanel, BorderLayout.CENTER);
// 添加MC按钮
JButton clearButton = new JButton("MC");
clearButton.setFont(new Font("Arial", Font.PLAIN, 24));
clearButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
display.setText("0");
}
});
add(clearButton, BorderLayout.SOUTH);
// 显示窗口
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
String input = e.getActionCommand();
if (input.matches("[0-9]")) { // 数字键
if (display.getText().equals("0")) {
display.setText(input);
} else {
display.setText(display.getText() + input);
}
} else if (input.equals(".")) { // 小数点键
if (!display.getText().contains(".")) {
display.setText(display.getText() + input);
}
} else if (input.matches("[+\\-*/=]")) { // 操作符键
double number = Double.parseDouble(display.getText());
if (operator.equals("=")) {
result = number;
} else if (operator.equals("+")) {
result += number;
} else if (operator.equals("-")) {
result -= number;
} else if (operator.equals("*")) {
result *= number;
} else if (operator.equals("/")) {
result /= number;
}
display.setText(Double.toString(result));
operator = input;
}
}
public static void main(String[] args) {
new Calculator();
}
}
```
这个程序使用 BorderLayout 布局管理器将显示文本框放在窗口的北部,数字按钮放在中部,MC按钮放在南部。数字按钮和操作符按钮都实现了 ActionListener 接口,在 actionPerformed 方法中处理用户输入。MC按钮使用匿名内部类实现了 ActionListener 接口,当用户点击时清除显示文本框中的内容。程序运行时会显示一个图形化界面,用户可以通过鼠标点击按钮输入数字和操作符,并在显示文本框中看到计算结果。
帮我在android studio用java语言写简易计算器,并用SQLite实现历史查询
好的,我可以帮您完成这个任务。下面是一个简单的示例代码,用于创建一个基本的计算器,并使用SQLite实现历史查询。
首先,您需要在Android Studio中创建一个新项目,然后在布局文件中添加一个EditText用于显示计算结果,以及一些Button用于输入数字和运算符。这里我们使用一个GridLayout来放置所有的按钮,如下所示:
```xml
<GridLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="16dp"
android:columnCount="4"
android:rowCount="5">
<EditText
android:id="@+id/result_text"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_columnSpan="4"
android:layout_gravity="fill_horizontal"
android:layout_weight="1"
android:inputType="numberDecimal"
android:padding="16dp"
android:textSize="24sp" />
<Button
android:id="@+id/btn_clear"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="C" />
<Button
android:id="@+id/btn_sign"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="+/-" />
<Button
android:id="@+id/btn_percent"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="%" />
<Button
android:id="@+id/btn_divide"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="/" />
<Button
android:id="@+id/btn_7"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="7" />
<Button
android:id="@+id/btn_8"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="8" />
<Button
android:id="@+id/btn_9"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="9" />
<Button
android:id="@+id/btn_multiply"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="*" />
<Button
android:id="@+id/btn_4"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="4" />
<Button
android:id="@+id/btn_5"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="5" />
<Button
android:id="@+id/btn_6"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="6" />
<Button
android:id="@+id/btn_minus"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="-" />
<Button
android:id="@+id/btn_1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="1" />
<Button
android:id="@+id/btn_2"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="2" />
<Button
android:id="@+id/btn_3"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="3" />
<Button
android:id="@+id/btn_plus"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="+" />
<Button
android:id="@+id/btn_0"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="2"
android:text="0" />
<Button
android:id="@+id/btn_dot"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="." />
<Button
android:id="@+id/btn_equals"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="=" />
</GridLayout>
```
接下来,我们在MainActivity.java文件中编写逻辑代码。首先,我们需要定义一些变量来存储当前输入的数字和运算符,以及计算结果。我们还需要使用SQLiteOpenHelper类来创建和管理数据库。这里我们定义一个名为"history"的表,用于存储计算历史记录。
```java
public class MainActivity extends AppCompatActivity {
private EditText resultText;
private String currentNumber = "";
private String currentOperator = "";
private double currentResult = 0.0;
private SQLiteDatabase database;
private static final String DB_NAME = "history.db";
private static final int DB_VERSION = 1;
private static final String TABLE_NAME = "history";
private static final String COLUMN_ID = "_id";
private static final String COLUMN_EXPRESSION = "expression";
private static final String COLUMN_RESULT = "result";
private static final String CREATE_TABLE =
"CREATE TABLE " + TABLE_NAME + " (" +
COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
COLUMN_EXPRESSION + " TEXT, " +
COLUMN_RESULT + " REAL);";
```
在onCreate()方法中,我们需要获取EditText和所有Button的引用,并为它们设置一个点击监听器。当用户点击数字或运算符按钮时,我们将该值附加到当前数字或运算符字符串上。当用户点击“C”按钮时,我们将所有变量重置为默认值。当用户点击“=”按钮时,我们将执行计算,并将结果显示在EditText中。同时,我们还将保存该计算的历史记录到数据库中。
```java
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
resultText = findViewById(R.id.result_text);
Button btnClear = findViewById(R.id.btn_clear);
Button btnSign = findViewById(R.id.btn_sign);
Button btnPercent = findViewById(R.id.btn_percent);
Button btnDivide = findViewById(R.id.btn_divide);
Button btn7 = findViewById(R.id.btn_7);
Button btn8 = findViewById(R.id.btn_8);
Button btn9 = findViewById(R.id.btn_9);
Button btnMultiply = findViewById(R.id.btn_multiply);
Button btn4 = findViewById(R.id.btn_4);
Button btn5 = findViewById(R.id.btn_5);
Button btn6 = findViewById(R.id.btn_6);
Button btnMinus = findViewById(R.id.btn_minus);
Button btn1 = findViewById(R.id.btn_1);
Button btn2 = findViewById(R.id.btn_2);
Button btn3 = findViewById(R.id.btn_3);
Button btnPlus = findViewById(R.id.btn_plus);
Button btn0 = findViewById(R.id.btn_0);
Button btnDot = findViewById(R.id.btn_dot);
Button btnEquals = findViewById(R.id.btn_equals);
DatabaseHelper dbHelper = new DatabaseHelper(this);
database = dbHelper.getWritableDatabase();
btnClear.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
currentNumber = "";
currentOperator = "";
currentResult = 0.0;
resultText.setText("");
}
});
btnSign.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (currentNumber.isEmpty()) {
currentNumber = "-";
} else if (currentNumber.equals("-")) {
currentNumber = "";
} else {
double number = Double.parseDouble(currentNumber);
number = -number;
currentNumber = Double.toString(number);
}
resultText.setText(currentNumber);
}
});
btnPercent.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (!currentNumber.isEmpty()) {
double number = Double.parseDouble(currentNumber);
number /= 100.0;
currentNumber = Double.toString(number);
resultText.setText(currentNumber);
}
}
});
btnDivide.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (!currentNumber.isEmpty()) {
currentOperator = "/";
currentResult = Double.parseDouble(currentNumber);
currentNumber = "";
resultText.setText("");
}
}
});
btn7.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
appendNumber("7");
}
});
btn8.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
appendNumber("8");
}
});
btn9.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
appendNumber("9");
}
});
btnMultiply.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (!currentNumber.isEmpty()) {
currentOperator = "*";
currentResult = Double.parseDouble(currentNumber);
currentNumber = "";
resultText.setText("");
}
}
});
btn4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
appendNumber("4");
}
});
btn5.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
appendNumber("5");
}
});
btn6.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
appendNumber("6");
}
});
btnMinus.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (!currentNumber.isEmpty()) {
currentOperator = "-";
currentResult = Double.parseDouble(currentNumber);
currentNumber = "";
resultText.setText("");
}
}
});
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
appendNumber("1");
}
});
btn2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
appendNumber("2");
}
});
btn3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
appendNumber("3");
}
});
btnPlus.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (!currentNumber.isEmpty()) {
currentOperator = "+";
currentResult = Double.parseDouble(currentNumber);
currentNumber = "";
resultText.setText("");
}
}
});
btn0.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
appendNumber("0");
}
});
btnDot.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (!currentNumber.contains(".")) {
currentNumber += ".";
resultText.setText(currentNumber);
}
}
});
btnEquals.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (!currentNumber.isEmpty()) {
double number = Double.parseDouble(currentNumber);
if (currentOperator.equals("+")) {
currentResult += number;
} else if (currentOperator.equals("-")) {
currentResult -= number;
} else if (currentOperator.equals("*")) {
currentResult *= number;
} else if (currentOperator.equals("/")) {
currentResult /= number;
} else {
currentResult = number;
}
currentNumber = Double.toString(currentResult);
resultText.setText(currentNumber);
ContentValues values = new ContentValues();
values.put(COLUMN_EXPRESSION, currentOperator + number);
values.put(COLUMN_RESULT, currentResult);
database.insert(TABLE_NAME, null, values);
}
}
});
}
private void appendNumber(String digit) {
currentNumber += digit;
resultText.setText(currentNumber);
}
```
最后,我们需要编写一个SQLiteOpenHelper类来创建和管理数据库。我们将在onCreate()方法中执行CREATE_TABLE语句,以创建一个名为“history”的表,用于存储计算历史记录。
```java
private static class DatabaseHelper extends SQLiteOpenHelper {
public DatabaseHelper(Context context) {
super(context, DB_NAME, null, DB_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(CREATE_TABLE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
onCreate(db);
}
}
```
现在,您可以在Android模拟器或真实设备上运行该应用程序,并测试它是否按预期工作。您可以使用历史记录功能来查看以前的计算结果,并在需要时重新执行它们。
阅读全文