Java 如何在同一对象上添加多个方法?
我是Java的初学者。我想知道是否有可能在同一个对象上添加多个方法,而不必创建一个新方法(在本例中为-String) 编译器不会给出任何错误,但不会输出任何内容。如果我为Java 如何在同一对象上添加多个方法?,java,methods,Java,Methods,我是Java的初学者。我想知道是否有可能在同一个对象上添加多个方法,而不必创建一个新方法(在本例中为-String) 编译器不会给出任何错误,但不会输出任何内容。如果我为.tolowerCase()方法创建另一个字符串,它就会工作。有没有办法像这样使用这些方法?如果没有,为什么 "sdfsd".trim().substring(0,1) 此部分返回“s” 返回“S” 返回”。它不会回到您开始使用的原始字符串;它只需获取您得到的结果的子字符串(1),“S”,即空字符串。那是你的问题 如果你想用
.tolowerCase()
方法创建另一个字符串,它就会工作。有没有办法像这样使用这些方法?如果没有,为什么
"sdfsd".trim().substring(0,1)
此部分返回“s”
返回“S”
返回”
。它不会回到您开始使用的原始字符串;它只需获取您得到的结果的子字符串(1)
,“S”
,即空字符串。那是你的问题
如果你想用字符串的不同部分做不同的事情,你必须把它存储在一个变量中,用不同的部分做不同的事情,然后把它重新组合起来。如果这是你的要求,你不能像你想做的那样“回到一个水平”
此部分返回“s”
返回“S”
返回”
。它不会回到您开始使用的原始字符串;它只需获取您得到的结果的子字符串(1)
,“S”
,即空字符串。那是你的问题
如果你想用字符串的不同部分做不同的事情,你必须把它存储在一个变量中,用不同的部分做不同的事情,然后把它重新组合起来。如果这是您所要求的,那么您不能像您试图做的那样“备份一个级别”。在Java中,字符串是不可变的。每当你“修改”它,你实际上就创建了一个新的
public class DeletAble {
public static void main(String[] args) {
// Your code is esentally shorthand for the following code
String userName = "sdfsd" // Value "sdfsd"
userName = userName.substring(0,1) // Value "s"
userName = userName.toUpperCase() // Value "S"
userName = userName.substring(1) // Value ""
userName = userName.toLowerCase() // Value ""
// Prints emmpty string ""
System.out.println(userName);
}
}
我猜您需要以下代码
public class DeletAble {
public static void main(String[] args) {
// Your code is esentally shorthand for the following code
String userName = "sdfsd" // Value "sdfsd"
String firstLetter = userName.substring(0,1).toUpperCase(); // Value "S"
String rest = userName.substring(1).toLowerCase(); // Value "dfsd"
userNmame = firstLetter + rest; // Value "Sdfsd
// Prints emmpty string "Sdfsd"
System.out.println(userName);
}
}
在Java中,字符串是不可变的。每当你“修改”它,你实际上就创建了一个新的
public class DeletAble {
public static void main(String[] args) {
// Your code is esentally shorthand for the following code
String userName = "sdfsd" // Value "sdfsd"
userName = userName.substring(0,1) // Value "s"
userName = userName.toUpperCase() // Value "S"
userName = userName.substring(1) // Value ""
userName = userName.toLowerCase() // Value ""
// Prints emmpty string ""
System.out.println(userName);
}
}
我猜您需要以下代码
public class DeletAble {
public static void main(String[] args) {
// Your code is esentally shorthand for the following code
String userName = "sdfsd" // Value "sdfsd"
String firstLetter = userName.substring(0,1).toUpperCase(); // Value "S"
String rest = userName.substring(1).toLowerCase(); // Value "dfsd"
userNmame = firstLetter + rest; // Value "Sdfsd
// Prints emmpty string "Sdfsd"
System.out.println(userName);
}
}
您可以完全按照您在那里得到的操作,但这是字符串的路径:
"sdfsd" -> "sdfsd" -> "s" -> "S" -> "" -> ""
子字符串(1)获取索引1处的字符,您需要的是索引0。您可以完全按照索引0中的内容进行操作,但这是字符串的路径:
"sdfsd" -> "sdfsd" -> "s" -> "S" -> "" -> ""
子字符串(1)获取索引1处的字符,您需要的是索引0。在
substring
方法中放置2个int
参数时,第一个表示要从中提取子字符串的字符串中第一个字符的索引,第二个是您停止的索引,该索引不包括在子字符串中。您编写了.substring(0,1)
,这意味着第一个字符将是字符串的索引0
,并且子字符串将一直到(但不包括)原始字符串的索引1
。这意味着生成的字符串将只有1个字符。之后,您尝试获取.substring(1)
,这意味着字符串的索引1
处的字符,但由于只有1个字符,因此没有索引1
(只有索引0
)。这就是为什么什么都没有输出。为了得到结果,我假设您最初想要尝试创建第一个子字符串
方法:.substring(0,2)
当您在子字符串
方法中放置2个int
参数时,第一个表示要从中提取子字符串的字符串中第一个字符的索引,第二个是您停止的索引,该索引不包括在子字符串中。您编写了.substring(0,1)
,这意味着第一个字符将是字符串的索引0
,并且子字符串将一直到(但不包括)原始字符串的索引1
。这意味着生成的字符串将只有1个字符。之后,您尝试获取.substring(1)
,这意味着字符串的索引1
处的字符,但由于只有1个字符,因此没有索引1
(只有索引0
)。这就是为什么什么都没有输出。为了得到结果,我假设您最初想要尝试制作第一个子字符串
方法:.substring(0,2)
您认为子字符串(0,1)
有什么作用?您为什么这么认为?子字符串(1)
做什么?取第一个字母并使其大写。“m”->“m”。为什么不喜欢(.子字符串(1)应该使字母的其余部分小写…@Aminorph您可以使用charAt()
获取单个字符的方法请记住,String
是一种不可变的类型。您调用的方法不是在单个实例上运行的。相反,每次链式方法调用都会返回一个String
类型的新对象。您是在询问方法链式,还是在询问为什么您认为什么都不可用正在输出?您认为子字符串(0,1)
有什么作用?您为什么这么认为?子字符串(1)
有什么作用?取第一个字母并使其大写。“m”->“m”。为什么不喜欢?:(.substring(1)应该使其余字母小写…@Aminorph您可以使用charAt()
获取单个字符的方法请记住,String
是一种不可变的类型。您调用的方法不是在单个实例上运行的。相反,每次链式方法调用都会返回一个String
类型的新对象。您是在询问方法链式,还是在询问为什么您认为什么都不可用正在输出?谢谢!我想我感觉好像有某种快捷方式。谢谢你清理它。干杯!有一个“快捷方式”可以链接调用,但是字符串从来都不是修饰符,你需要存储结果(一个新字符串)谢谢你!我想我觉得有一些捷径。谢谢你清理它。干杯!有一个“捷径”,你可以连接电话