我似乎无法将":)"的字符串替换为其他内容,这是我的代码:
if(message.contains(":)")) message = message.replaceAll(":)", replacement);
Run Code Online (Sandbox Code Playgroud)
这是错误:
Exception in thread "Listen" java.util.regex.PatternSyntaxException: Unmatched closing ')'
near index 0
:)
^
Run Code Online (Sandbox Code Playgroud)
我该怎么办?
我正在尝试用Java创建一个小程序,将华氏温度转换为摄氏温度.它涉及扣除32并乘以5/9.所以我这样做了.
double Fahrenheit = 100;
double celsius = (Fahrenheit - 32) * (5/9);
System.out.println(celsius);
Run Code Online (Sandbox Code Playgroud)
但由于某种原因,5/9返回零,甚至毁掉了它
double s = 5/9;
Run Code Online (Sandbox Code Playgroud)
返回零,我不知道为什么.我发现我能做到的唯一方法是,如果我宣布一切,并逐步进行.
double x = 5, p = 9, n = (x/p), Fah = 100;
double Cel = Fah - 32;
Cel = Cel*n;
Run Code Online (Sandbox Code Playgroud)
任何人都可以告诉我为什么会发生这种事情,我认为至少将它声明为双重会返回一个值.如果有人知道,可以绕过它.
我正在尝试编写一个只更改文件名而不用读取和写入不同名称的代码,是否有内置函数?我试图寻找
如果没有,最好的方法是用新名称重写它?
在JDK文档中,它声明String方法isEmpty()对于任何长度为0 的字符串都是true.
对于空字符串来说,这显然是正确的"".
是否还有其他字符串?我测试过换行符和回车符,它们有一个长度.我还没有测试带有附加退格的字符.
编辑:我很欣赏以下所有好答案中的所有其他信息,但我已经接受了我认为最直接的答案.
这个定义有什么问题?我想用这些数字声明一个二维数组:
int[][] arr = [[1,2,3],[1,2,3],[1,2,3]];
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
Type mismatch: cannot convert from int to int[]
Run Code Online (Sandbox Code Playgroud) 我正在尝试根据您的答案为其中一个程序编写代码.我想这样做,以便一些变量不区分大小写.例如,如果我的变量x等于"Me"我希望它也相等"me".那可能吗?
到目前为止,这是我的代码:
import java.util.Scanner;
class Tutorial {
public static void main (String args[]){
System.out.println("Who goes there?");
Scanner N = new Scanner(System.in);
String name = N.next();
if (name.equals("me") || name.equals("Me")){
System.out.println("Well, good for you smartass.");
System.exit(1);
}else System.out.printf("Nice to meet you, %s.%n", name);
System.out.print("How are you doing?");
Scanner d1 = new Scanner(System.in);
String doing = d1.next();
switch(doing){
case "good": System.out.println("that is nice to hear.");
case "Well": System.out.println("that is nice to hear.");
case "bad" : System.out.println("That's …Run Code Online (Sandbox Code Playgroud) 我会尽力解释这个.
假设我得到了一个用户输入,那就是:245,我希望将其向下舍入为200然后除以100然后最终为+1,因此结果为3(将其放在区域3中,更多在下面)
基本上我需要的是一个分区系统,如下所示
Zone 1: 0-99
Zone 2: 100-199
Zone 3: 200-299
Run Code Online (Sandbox Code Playgroud)
对于用户输入的任何数字等都是如此,所以我觉得将数字向下舍入然后除以100将是最好的方法,因为我目前用if else语句将其除去,虽然显然是有限的,但只适用于我的预定区域.
对于代码
int []arr = new int[4];
System.out.println(arr);
Run Code Online (Sandbox Code Playgroud)
输出看起来像
[I @ 54640b25
编译器究竟打印出来的是什么?arr的内存地址?与C不同,Java似乎没有将数组名称(单独)等同于数组的第一个位置.
一直在环顾四周,看看是否有什么可以帮助我,但我不太了解人们的回答,我所理解的任何事情似乎都无法解决问题!所以基本上就像标题所说,我得到一个数组索引超出范围的异常,我不明白为什么.任何帮助是极大的赞赏.
码:
import javax.swing.*;
public class Array {
public static void main(String[] args) {
double height[] = new double[10];
String heightAsString;
int i, over18 = 0, under16 = 0;
for(i = 1; i <= height.length; i++){
heightAsString = JOptionPane.showInputDialog("Please Enter The Height Of Person " + i);
height[i] = Double.parseDouble(heightAsString);
if(height[i] > 1.8){
over18 += 1;
}
if(height[i] < 1.6){
under16 += 1;
}
}
JOptionPane.showMessageDialog(null,"The Total Number Of People Over 1.8m Is: " + over18 +
"\nThe Total Number …Run Code Online (Sandbox Code Playgroud) 我想知道是谁/什么触发了Java中原始类型的初始化,例如:
public class A {
int primitive;
String nonPrimitive;
public static void main(String[] args) {
A newObject = new A();
}
}
Run Code Online (Sandbox Code Playgroud)
因此,当我们创建新实例时A,A会调用类的默认构造函数.String扩展了Object,因此调用了Object的构造函数并nonPrimitive创建了var并且具有null值.
但原始变量的情况如何?如果它由VM直接初始化,默认值为0,如果创建新的newObject触发它?或者它是在创建之前创建的 newObject?