ดังนั้นปัญหาจึงเป็นดังนี้ คุณต้องสร้างเมธอดที่ใช้สตริงเป็นพารามิเตอร์ที่ประกอบด้วยตัวเลขทั้งหมด และคุณต้องนำสตริงนั้นมาแปลงเป็นจำนวนเต็ม คุณต้องใช้วิธีแก้ปัญหาแบบเรียกซ้ำเพื่อแก้ไขปัญหา
ฉันเขียนโค้ดต่อไปนี้แล้วและใช้งานได้ดีเมื่อฉันป้อน "1234" หรือ "138775" แต่ทันทีที่ฉันป้อนตัวเลขที่มี 0 ผลลัพธ์ที่ได้กลับแปลกๆ
100, 1001, 101 และ 12045 ส่งคืน 10, 11, 110 และ 1245 ตามลำดับ ตามที่กล่าวไว้ข้างต้น โค้ดใช้งานได้ดีเมื่อฉันส่งไปอย่างเช่น "1234" หรือ "14384" แต่ทันทีที่มีเลขศูนย์ ก็มีแนวโน้มที่จะลบเลขศูนย์นั้นออกไป
ฉันได้ลอง int ที่แตกต่างกันในการแปลงสตริงจากคลาส Integer เช่น parse(int) แต่นั่นก็ให้ผลลัพธ์เดียวกัน
/**
* converts a string of numbers to an int
*
* @param String str: original string of numbers
* @return int recursiveStringInt: returns the int value of the string
*/
public static int recursiveStringInt(String str)
{
if(str.length() == 1)
return Integer.valueOf(str);
else
{
return Integer.valueOf(str.substring(0,1) + recursiveStringInt(str.substring(1)));
}
}
ขอบคุณสำหรับความช่วยเหลือของคุณ!
โปรดแจ้งให้เราทราบหากต้องการคำชี้แจงใด ๆ
System.out.println(Integer.valueOf("0123"));
- person Scary Wombat   schedule 30.10.2018