2017-12-21 16 views
-1

안녕하세요 저는 String 클래스에 ID를 만드는 방법을 찾으려고 노력 중이며 만든 클래스의 모든 인스턴스에 대해 icrement라는 숫자 값을 가지고 있습니다. 정수를 사용하는 방법을 알려주는 가이드를 찾았으나 문자열을 사용하려고합니다. 나는 이것을 어떻게 할 것인가에 대해 상실감을 느낀다.숫자 문자열을 ID로 증가시키는 방법은 무엇입니까?

\t import java.util.ArrayList; 
 

 

 
public class Order { 
 
\t \t 
 
\t private String orderID; 
 
\t 
 
    Order(String orderID) { 
 
\t \t setOrderID(orderID); \t 
 
\t } 
 
\t 
 
\t public void setOrderID(String orderID) { 
 
\t \t this.orderID=orderID; 
 
\t } 
 
\t 
 
    }

+1

합니다. – Bergi

+4

정수가 더 적합한 경우 왜 문자열을 사용 하시겠습니까? – Bergi

+0

변수에 문자열을 사용하기로 결정한 경우 int 또는 long으로 ID를 생성 한 다음 String.valueOf()를 사용하여이 클래스에 문자열 – PillHead

답변

0

오브젝트의 각 인스턴스는 다른 독립적이다. 따라서 Order 객체가 사용자가 직접 지정하지 않고 만든 이전 인스턴스보다 하나 높은 숫자 값을 마술처럼 사용할 수있는 방법은 없습니다. 증분 인덱스가있는 루프가 있으면 목록에 연속적으로 삽입 할 수 있습니다. 그러나 String을 사용하여이를 수행하려면 먼저 인덱스를 String으로 변환해야합니다. 이것은 내가 어떻게 할 것입니다 :

출력 :

OrderID: 0 
OrderID: 1 
OrderID: 2 
OrderID: 3 
OrderID: 4 

번호 : 제 이해로

import java.util.ArrayList; 

public class F { 

    public static void main(String[] args) { 
    ArrayList<Order> orders = new ArrayList<Order>(); 
    Order order; 
    String orderID; 

    for (int i = 0; i < 10; i++) { 

     orderID = Integer.toString(i);  // Convert the index to a String 
     order = new Order(orderID);   // Instantiate a new Order object with the String 
     orders.add(order);     // Add the String to the list 
    } 

    // Loop through the list 
    for (Order o : orders) { 
     System.out.println(o.getOrderID()); 
    } 

    } 
} 

class Order { 

    private String orderID; 

    Order(String orderID) { 
     setOrderID(orderID); 
    } 

    public void setOrderID(String orderID) { 
     this.orderID=orderID; 
    } 

    // Getter method 
    public String getOrderID() { 
    return this.orderID; 
    } 

} 
+0

에서 Order 클래스는 Costumer라고하는 클래스에서 hashmap으로 들어갑니다. 그래서 for 루프를 사용하지 않고 대신 스타일을 사용하십시오. String orderID = (Integer.parseInt (version.substring (1, version.length())) +1); 나는 대신 이것을 구현하는 방법에 관해서는 분실했다. . 그러나 –

0

, 당신은 정적 INT 변수를 사용해야합니다.

0

당신은 당신의 클래스에 정적 카운터를 추가하고 정말 문자열을 사용하려는 경우 문자열로 값을 할당 할 수 있습니다 : 이것은 자바, 자바 스크립트가 보이는

public class Order { 

    private static final int orderCount = 0; 
    private final String orderID; 

    Order() { 
     this.orderCount++; 
     this.orderID = String.valueOf(this.orderCount); 
    } 

} 
+0

이게 작동하려고하는 것처럼, 내가하려고하는 것을 위해 효과가있을 것 같습니다. 어쩌면 내가 작성해야하지만 문자열로 특성을 갖고 싶어 이유는 그것을 수학 수식에 적용 할 싶지 않아요. 또한 내 대학 교수 haha ​​그것을 demany :) –

+0

그냥 문제가되지 않는 무언가에 대한 정말 끔찍한 불필요한 솔루션과 같은 소리. 코드를 작성하면 속성이 사용 된 것을 담당하게됩니다. 특정 코드를 작성하지 않으면 어떤 수학 공식에서도 실수로 사용하게되는 것과는 다릅니다. 나는 그것을 개인용 정수로 유지할 것이고, 문자열로 드러내야 할 필요가 있다면,'String.valueOf'를하는 getter를 사용하십시오. – OptimusCrime

+0

@OptimusCrime 물론 솔루션은 이상적이지 않습니다. 실제 상황에서는 단순히 의미가 없습니다.하지만 그는 자신의 대학을위한 것이라고 언급 했으므로 이는 단순히 목적을위한 것입니다. – lopf