有没有办法Throwable.printStackTrace(PrintStream s)打印完整的堆栈跟踪,以便我可以看到超出最后一行"... 40 more"?
甲回文是单词,短语,数字或的单元的其它序列可以读取在任一方向的方式相同.
为了检查单词是否是回文,我得到单词的字符数组并比较字符.我测试了它似乎工作.但是我想知道它是否正确或是否有待改进的地方.
这是我的代码:
public class Aufg1 {
public static void main(String[] args) {
String wort = "reliefpfpfeiller";
char[] warray = wort.toCharArray();
System.out.println(istPalindrom(warray));
}
public static boolean istPalindrom(char[] wort){
boolean palindrom = false;
if(wort.length%2 == 0){
for(int i = 0; i < wort.length/2-1; i++){
if(wort[i] != wort[wort.length-i-1]){
return false;
}else{
palindrom = true;
}
}
}else{
for(int i = 0; i < (wort.length-1)/2-1; i++){
if(wort[i] != wort[wort.length-i-1]){
return false;
}else{
palindrom = true;
}
}
}
return palindrom;
} …Run Code Online (Sandbox Code Playgroud) 我正在使用XmlReader.NET中的类解析XML文件,我认为编写通用解析函数来一般性地读取不同的属性是明智的.我想出了以下功能:
private static T ReadData<T>(XmlReader reader, string value)
{
reader.MoveToAttribute(value);
object readData = reader.ReadContentAsObject();
return (T)readData;
}
Run Code Online (Sandbox Code Playgroud)
当我意识到,这并不像我原先计划的那样完全有效; 它会引发原始类型(如intor)的错误double,因为强制转换无法从a转换string为数字类型.有没有办法让我的功能以修改后的形式占上风?
我之前从未做过任何严肃的Java编码,但我根据现有技能(Delphi和C#)学习了语法,库和概念.我很难理解的一件事是,我已经看到了这么多代码,在printStackTrace这样的情况下默默地消耗异常:
public void process() {
try {
System.out.println("test");
} catch(Exception e) {
e.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud)
在我遇到的几乎所有Java文章和项目中都有类似的代码.根据我的知识,这是非常糟糕的.几乎总是应该将异常转发到外部上下文,如下所示:
public void process() {
try {
System.out.println("test");
} catch(Exception e) {
e.printStackTrace();
throw new AssertionError(e);
}
}
Run Code Online (Sandbox Code Playgroud)
大多数情况下,异常最终应该在属于底层框架的最外层循环中处理(例如Java Swing).为什么Java世界中的代码看起来像这样的规范?我很困惑.
根据我的背景,我宁愿完全删除printStackTrace .我会简单地重新抛出一个未处理的aka RuntimeException(或更好的AssertionError),然后捕获并在最合适的位置记录它:框架最外层循环.
public void process() {
try {
System.out.println("test");
} catch(Exception e) {
throw new AssertionError(e);
}
}
Run Code Online (Sandbox Code Playgroud) 似乎减法正在触发某种问题,结果值是错误的.
double tempCommission = targetPremium.doubleValue()*rate.doubleValue()/100d;
Run Code Online (Sandbox Code Playgroud)
78.75 = 787.5*10.0/100d
double netToCompany = targetPremium.doubleValue() - tempCommission;
Run Code Online (Sandbox Code Playgroud)
708.75 = 787.5 - 78.75
double dCommission = request.getPremium().doubleValue() - netToCompany;
Run Code Online (Sandbox Code Playgroud)
877.8499999999999 = 1586.6 - 708.75
由此产生的预期值为877.85.
应该怎样做才能确保正确计算?
我想将字符串的第一个字符转换为大写,其余字符转换为小写.我该怎么做?
例:
String inputval="ABCb" OR "a123BC_DET" or "aBcd"
String outputval="Abcb" or "A123bc_det" or "Abcd"
Run Code Online (Sandbox Code Playgroud) 有谁知道如何将字符串从ISO-8859-1转换为UTF-8并返回Java?
我从网上获取一个字符串并将其保存在RMS(J2ME)中,但我想保留特殊字符并从RMS获取字符串,但使用ISO-8859-1编码.我该怎么做呢?